Advertisement
Guest User

Untitled

a guest
Jan 21st, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 12.91 KB | None | 0 0
  1. #! /bin/bash
  2.  
  3. test_passed=0
  4. test_fail=0
  5. echo -e "Integration tests by mariusvnh, zuldruck, simontraww"
  6. echo -e "\n\nTESTS\n"
  7.  
  8. #simple exit
  9. echo "exit" | ./mysh &> log.txt
  10. if [ $? != 0 ]; then
  11.     echo -e "simple exit: Return value was $?\nExpected 0\n"
  12. else {
  13.     echo -e "simple exit: PASSED\n"
  14.     ((test_passed++))
  15. }
  16. fi
  17.  
  18. DIFF=$(diff <(cat log.txt) <(echo "exit"))
  19. if [ "$DIFF" != "" ]; then
  20.     echo -e "simple exit: Got: $DIFF\nExpected: \"\"\n"
  21. else
  22.     echo -e "simple exit [2]: PASSED\n"
  23.     ((test_passed++))
  24. fi
  25.  
  26. #exit 43
  27. echo "exit 43" | ./mysh &> log.txt
  28. if [ $? != 43 ]; then
  29.     echo -e "exit 43: Return value was $?\nExpected 43\n"
  30. else {
  31.     echo -e "exit 43: PASSED\n"
  32.     ((test_passed++))
  33. }
  34. fi
  35.  
  36. DIFF=$(diff <(cat log.txt) <(echo "exit"))
  37. if [ "$DIFF" != "" ]; then
  38.     echo -e "exit 43: Got: $DIFF\nExpected: \"\"\n"
  39. else {
  40.     echo -e "exit 43 [2]: PASSED\n"
  41.     ((test_passed++))
  42. }
  43. fi
  44.  
  45. #exit test
  46. echo "exit test" | ./mysh &> log.txt
  47. echo "exit test" | tcsh &> tcssh.txt
  48.  
  49. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  50. if [ "$DIFF" != "" ]; then
  51.     echo -e "exit test: Got: $DIFF\nExpected: \"\"\n"
  52. else {
  53.     echo -e "exit test: PASSED\n"
  54.     ((test_passed++))
  55. }
  56. fi
  57.  
  58. #exit 42test
  59. echo "exit 42test" | ./mysh &> log.txt
  60. echo "exit 42test" | tcsh >& tcssh.txt
  61.  
  62. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  63. if [ "$DIFF" != "" ]; then
  64.     echo -e "exit 42test: Got: $DIFF\nExpected: \"\"\n"
  65. else {
  66.     echo -e "exit 42test: PASSED\n"
  67.     ((test_passed++))
  68. }
  69. fi
  70.  
  71. #exit badly [SIMONTRAWW]
  72. echo "exit -77j" | ./mysh &> log.txt
  73. echo "exit -77j" | tcsh &> tcssh.txt
  74.  
  75. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  76. if [ "$DIFF" != "" ]; then
  77.     echo -e "exit -77j: Got: $DIFF\nExpected: \"\"\n"
  78. else {
  79.     echo -e "exit -77j: PASSED\n"
  80.     ((test_passed++))
  81. }
  82. fi
  83.  
  84. #pwd
  85. echo -e "cd ..\npwd" | ./mysh &> log.txt
  86. echo -e "cd ..\npwd" | tcsh &> tcsh.txt
  87.  
  88. DIFF=$(diff <(cat log.txt) <(cat tcsh.txt))
  89. if [ "$DIFF" != "" ]; then
  90.     echo -e "exit cd ..;pwd: Got: $DIFF\nExpected: \"\"\n"
  91. else {
  92.     echo -e "exit cd ..;pwd: PASSED\n"
  93.     ((test_passed++))
  94. }
  95. fi
  96.  
  97. #env path presence
  98. echo -e "env" | ./mysh &> log.txt
  99.  
  100. DIFF=$(cat log.txt | grep "^PATH=" | wc -l)
  101. if [ "$DIFF" != "1" ]; then
  102.     echo -e "env PATH check: Got: $DIFF\nExpected: \"1\"\n"
  103. else {
  104.     echo -e "env PATH check: PASSED\n"
  105.     ((test_passed++))
  106. }
  107. fi
  108.  
  109. #setenv
  110. echo -e "setenv SALUT PUTE\nenv" | ./mysh &> log.txt
  111.  
  112. DIFF=$(cat log.txt | grep "^SALUT=PUTE" | wc -l)
  113. if [ "$DIFF" != "1" ]; then
  114.     echo -e "setenv test: Got: $DIFF\nExpected: \"1\"\n"
  115. else {
  116.     echo -e "setenv test: PASSED\n"
  117.     ((test_passed++))
  118. }
  119. fi
  120.  
  121. #setenv
  122. echo -e "unsetenv PATH\nenv" | ./mysh &> log.txt
  123.  
  124. DIFF=$(cat log.txt | grep "^PATH" | wc -l)
  125. if [ "$DIFF" != "0" ]; then
  126.     echo -e "unsetenv test: Got: $DIFF\nExpected: \"1\"\n"
  127. else {
  128.     echo -e "unsetenv test: PASSED\n"
  129.     ((test_passed++))
  130. }
  131. fi
  132.  
  133. #setenv
  134. mkdir lstest
  135. mkdir lstest/plouplou
  136. touch lstest/salut.txt
  137. touch lstest/pute.txt
  138. touch lstest/plouplou/yop.txt
  139.  
  140. echo -e "cd lstest\nls" | ./mysh &> log.txt
  141. echo -e "cd lstest\nls" | tcsh &> tcssh.txt
  142.  
  143. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  144. if [ "$DIFF" != "" ]; then
  145.     echo -e "ls: Got: $DIFF\nExpected: \"1\"\n"
  146. else {
  147.     echo -e "ls: PASSED\n"
  148.     ((test_passed++))
  149. }
  150. fi
  151. rm -rf lstest
  152.  
  153.  
  154. #TEST LONG SPACES [SIMONTRAWW]
  155. echo "ls                 " | ./mysh &>log.txt
  156. echo "ls                 " | tcsh &>tcssh.txt
  157.  
  158. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  159. if [ "$DIFF" != "" ]; then
  160.     echo -e "TEST LONG WHITESPACES : Got: $DIFF\nExpected: \"1\"\n"
  161. else {
  162.     echo -e "TEST LONG WHITESPACES : PASSED\n"
  163.     ((test_passed++))
  164. }
  165. fi
  166.  
  167. #TEST WITH TAB [SIMONTRAWW]
  168. echo "ls        " | ./mysh &>log.txt
  169. echo "ls        " | tcsh &>tcssh.txt
  170.  
  171. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  172. if [ "$DIFF" != "" ]; then
  173.     echo -e "TEST WITH TAB : Got: $DIFF\nExpected: \"1\"\n"
  174. else {
  175.     echo -e "TEST WITH TAB : PASSED\n"
  176.     ((test_passed++))
  177. }
  178. fi
  179.  
  180.  
  181. #TEST WITH spaces [SIMONTRAWW]
  182. echo "cd        ../" | ./mysh &>log.txt
  183. echo "cd        ../" | tcsh &>tcssh.txt
  184.  
  185. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  186. if [ "$DIFF" != "" ]; then
  187.     echo -e "TEST CD ../ WITH SPACES : Got: $DIFF\nExpected: \"1\"\n"
  188. else {
  189.     echo -e "TEST CD ../ WITH SPACES : PASSED\n"
  190.     ((test_passed++))
  191. }
  192. fi
  193.  
  194.  
  195.  
  196. #TEST WITH SPACES [SIMONTRAWW]
  197. echo "         cd            " | ./mysh &>log.txt
  198. echo "         cd            " | tcsh &>tcssh.txt
  199.  
  200. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  201. if [ "$DIFF" != "" ]; then
  202.     echo -e "TEST CD WITH SPACES : Got: $DIFF\nExpected: \"1\"\n"
  203. else {
  204.     echo -e "TEST CD WITH SPACES : PASSED\n"
  205.     ((test_passed++))
  206. }
  207. fi
  208.  
  209. #execute non executable file
  210. echo -e "./Makefile" | ./mysh &> log.txt
  211. echo -e "./Makefile" | tcsh &> tcssh.txt
  212.  
  213. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  214. if [ "$DIFF" != "" ]; then
  215.     echo -e "ls: Got: $DIFF\nExpected: \"1\"\n"
  216. else {
  217.     echo -e "ls: PASSED\n"
  218.     ((test_passed++))
  219. }
  220. fi
  221.  
  222. #TEST CHMOD -x [SIMONTRAWW]
  223. echo -e "chmod -x ./a.out\n./a.out" |  ./mysh &> log.txt
  224. echo -e "chmod -x ./a.out\n./a.out" | tcsh &> tcssh.txt
  225.  
  226. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  227. if [ "$DIFF" != "" ]; then
  228.     echo -e "TEST CHMOD: Got: $DIFF\nExpected: \"1\"\n"
  229. else {
  230.     echo -e "TEST CHMOD: PASSED\n"
  231.     ((test_passed++))
  232. }
  233. fi
  234.  
  235. #TEST CHMOD +x on picture [SIMONTRAWW]
  236. echo -e "chmod +x front.png\n./front.png" | ./mysh &> log.txt
  237. echo -e "chmod +x front.png\n./front.png" | tcsh &> tcssh.txt
  238.  
  239. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  240. if [ "$DIFF" != "" ]; then
  241.     echo -e "TEST EXEC IMG: Got: $DIFF\nExpected: \"1\"\n"
  242. else {
  243.     echo -e "TEST EXEC IMG: PASSED\n"
  244.     ((test_passed++))
  245. }
  246. fi
  247.  
  248. #TEST programm segfault [SIMONTRAWW]
  249. echo -e "gcc segfault.c\n./a.out" | ./mysh &> log.txt
  250. echo -e "gcc segfault.c\n./a.out" | tcsh &> tcssh.txt
  251.  
  252. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  253. if [ "$DIFF" != "" ]; then
  254.     echo -e "TEST SEGFAULT: Got: $DIFF\nExpected: \"1\"\n"
  255. else {
  256.     echo -e "TEST SEGFAULT: PASSED\n"
  257.     ((test_passed++))
  258. }
  259. fi
  260.  
  261.  
  262. #TEST programm floating point exeception [SIMONTRAWW]
  263. echo -e "gcc floating.c -lm\n./a.out" | ./mysh &> log.txt
  264. echo -e "gcc floating.c -lm\n./a.out" | tcsh &> tcssh.txt
  265.  
  266. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  267. if [ "$DIFF" != "" ]; then
  268.     echo -e "TEST FLOATING point exception: Got: $DIFF\nExpected: \"1\"\n"
  269. else {
  270.     echo -e "TEST FLOATING point exception: PASSED\n"
  271.     ((test_passed++))
  272. }
  273. fi
  274.  
  275. #TEST ERROR + one or two letter after word [SIMONTRAWW]
  276. echo -e "exitt" | ./mysh &> log.txt
  277. echo -e "exitt" | tcsh  &> tcssh.txt
  278.  
  279. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  280. if [ "$DIFF" != "" ]; then
  281.     echo -e "TEST EXITT (one two letter at the end of word): Got: $DIFF\nExpected: \"1\"\n"
  282. else {
  283.     echo -e "TEST EXITT (one two letter at the end of word): PASSED\n"
  284.     ((test_passed++))
  285. }
  286. fi
  287.  
  288. #TEST ERROR + one or two letter after word [SIMONTRAWW]
  289.  
  290. echo -e "unsetenvv" | ./mysh &> log.txt
  291. echo -e "unsetenvv" | tcsh  &> tcssh.txt
  292.  
  293. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  294. if [ "$DIFF" != "" ]; then
  295.     echo -e "TEST unsetenvv (one two letter at the end of word): Got: $DIFF\nExpected: \"1\"\n"
  296. else {
  297.     echo -e "TEST unsetenvv (one two letter at the end of word): PASSED\n"
  298.     ((test_passed++))
  299. }
  300. fi
  301.  
  302. #TEST ERROR + one or two letter after word [SIMONTRAWW]
  303. echo -e "setenvi" | ./mysh &> log.txt
  304. echo -e "setenvi" | tcsh  &> tcssh.txt
  305.  
  306. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  307. if [ "$DIFF" != "" ]; then
  308.     echo -e "TEST setenvi (one two letter at the end of word): Got: $DIFF\nExpected: \"1\"\n"
  309. else {
  310.     echo -e "TEST setenvi (one two letter at the end of word): PASSED\n"
  311.     ((test_passed++))
  312. }
  313. fi
  314.  
  315. #TEST cd [SIMONTRAWW]
  316. echo -e "cd\npwd" | ./mysh &>log.txt
  317. echo -e "cd\npwd" | tcsh &>tcssh.txt
  318.  
  319. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  320. if [ "$DIFF" != "" ]; then
  321.     echo -e "TEST cd : Got: $DIFF\nExpected: \"1\"\n"
  322. else {
  323.     echo -e "TEST cd : PASSED\n"
  324.     ((test_passed++))
  325. }
  326. fi
  327.  
  328. #TEST cd ../ [SIMONTRAWW]
  329. echo -e "cd ../\npwd" | ./mysh &>log.txt
  330. echo -e "cd ../\npwd" | tcsh &>tcssh.txt
  331.  
  332. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  333. if [ "$DIFF" != "" ]; then
  334.     echo -e "TEST cd ../ : Got: $DIFF\nExpected: \"1\"\n"
  335. else {
  336.     echo -e "TEST cd ../ : PASSED\n"
  337.     ((test_passed++))
  338. }
  339. fi
  340.  
  341. #TEST cd /dev [SIMONTRAWW]
  342. echo -e "cd /dev\npwd" | ./mysh &>log.txt
  343. echo -e "cd /dev\npwd" | tcsh &>tcssh.txt
  344.  
  345. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  346. if [ "$DIFF" != "" ]; then
  347.     echo -e "TEST cd /dev : Got: $DIFF\nExpected: \"1\"\n"
  348. else {
  349.     echo -e "TEST cd /dev : PASSED\n"
  350.     ((test_passed++))
  351. }
  352. fi
  353.  
  354. #TEST cd NULL [SIMONTRAWW]
  355. echo -e "cd NULL" | ./mysh &>log.txt
  356. echo -e "cd NULL" | tcsh &>tcssh.txt
  357.  
  358. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  359. if [ "$DIFF" != "" ]; then
  360.     echo -e "TEST cd NULL directory : Got: $DIFF\nExpected: \"1\"\n"
  361. else {
  362.     echo -e "TEST cd NULL directory : PASSED\n"
  363.     ((test_passed++))
  364. }
  365. fi
  366.  
  367. #TEST cd random dirr [SIMONTRAWW]
  368. echo -e "cd ../../../../../../../../\npwd" | ./mysh &>log.txt
  369. echo -e "cd ../../../../../../../../\npwd" | tcsh &>tcssh.txt
  370.  
  371. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  372. if [ "$DIFF" != "" ]; then
  373.     echo -e "TEST random dirr : Got: $DIFF\nExpected: \"1\"\n"
  374. else {
  375.     echo -e "TEST random dirr : PASSED\n"
  376.     ((test_passed++))
  377. }
  378. fi
  379.  
  380.  
  381. #TEST cd moins without any OLDPWD [SIMONTRAWW]
  382. echo -e "cd ../\ncd -\npwd" | ./mysh &>log.txt
  383. echo -e "cd ../\ncd -\npwd" | tcsh &>tcssh.txt
  384.  
  385. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  386. if [ "$DIFF" != "" ]; then
  387.     echo -e "TEST cd moins without OLDPWD : Got: $DIFF\nExpected: \"1\"\n"
  388. else {
  389.     echo -e "TEST cd moins without OLDPWD: PASSED\n"
  390.     ((test_passed++))
  391. }
  392. fi
  393.  
  394. #TEST NAME TOO LONG [SIMONTRAWW]
  395. echo "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  396. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | ./mysh &>log.txt ./mysh &> /dev/null
  397. echo "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
  398. aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" | tcsh &>tcssh.txt tcsh &> /dev/null
  399.  
  400. DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  401. if [ "$DIFF" != "" ]; then
  402.     echo -e "TEST CD NAME TOO LONG: Got: $DIFF\nExpected: \"1\"\n"
  403. else {
  404.     echo -e "TEST CD NAME TOO LONG : PASSED\n"
  405.     ((test_passed++))
  406. }
  407. fi
  408.  
  409. echo "####################################"
  410. echo "SUCCESS TEST --> " $test_passed
  411. test_fail=$(echo "31-$test_passed" |bc )
  412. echo "FAIL TEST --> " $test_fail
  413. echo "####################################"
  414.  
  415. # IL FAUT TROUVER UNE SOLUTION POUR CES TESTS..
  416. #######################################################################################################################################################
  417. # CE TEST EST PROBLEMATIQUE --> il aura toujours un soucis au niveaux du level du shell dans le system ! SHLVL. mais s'il y a que ça, le test passed !#
  418. #######################################################################################################################################################
  419. #echo -e "setenv" | ./mysh &> log.txt
  420. #echo -e "setenv" | tcsh  &> tcssh.txt
  421. #
  422. #DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  423. #if [ "$DIFF" != "" ]; then
  424. #   echo -e "TEST setenv : Got: $DIFF\nExpected: \"1\"\n"
  425. #else
  426. #   echo -e "TEST setenv : PASSED\n"
  427. #fi
  428.  
  429. #######################################################################################################################################################
  430. # CE TEST EST PROBLEMATIQUE --> il aura toujours un soucis au niveaux du level du shell dans le system ! SHLVL. mais s'il y a que ça, le test passed !#
  431. #######################################################################################################################################################
  432. #TEST ERROR + one or two letter after word
  433. #
  434. #echo -e "env" | ./mysh &> log.txt
  435. #echo -e "env" | tcsh  &> tcssh.txt
  436. #
  437. #DIFF=$(diff <(cat log.txt) <(cat tcssh.txt))
  438. #if [ "$DIFF" != "" ]; then
  439. #   echo -e "TEST PRINT env: Got: $DIFF\nExpected: \"1\"\n"
  440. #else
  441. #   echo -e "TEST PRINT env: PASSED\n"
  442. #fi
  443. rm -rf log.txt
  444. rm -rf tcsh.txt
  445. rm -rf tcssh.txt
  446. echo -e "\nEND OF TESTS\n"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement