From b6283ba8956c5c36aad0276755cdb304b9d15b20 Mon Sep 17 00:00:00 2001 From: an7s <an7s@git.zephyr-software.com> Date: Thu, 3 Nov 2011 14:42:18 +0000 Subject: [PATCH] adding more tests Former-commit-id: d4b064690b54136bdbfaff8cc46de7068b289f66 --- .gitattributes | 15 + tests/simple/Makefile | 63 ++ tests/simple/banner_O3.exe | Bin 0 -> 8052 bytes tests/simple/banner_nop.exe | Bin 0 -> 8079 bytes tests/simple/banner_test.sh | 10 + tests/simple/cal_O3.exe | Bin 0 -> 7548 bytes tests/simple/cal_nop.exe | Bin 0 -> 7548 bytes tests/simple/cal_test.sh | 107 ++++ tests/simple/dumbledore_cmd_O3.exe | Bin 0 -> 7284 bytes tests/simple/dumbledore_cmd_nop.exe | Bin 0 -> 7314 bytes tests/simple/dumbledore_test.sh | 16 + tests/simple/jack_tests/banner.c | 193 ++++++ tests/simple/jack_tests/cal.c | 206 +++++++ tests/simple/jack_tests/grep.c | 523 ++++++++++++++++ tests/simple/jack_tests/k1.c | 43 ++ tests/simple/jack_tests/od.c | 893 ++++++++++++++++++++++++++++ 16 files changed, 2069 insertions(+) create mode 100644 tests/simple/Makefile create mode 100755 tests/simple/banner_O3.exe create mode 100755 tests/simple/banner_nop.exe create mode 100644 tests/simple/banner_test.sh create mode 100755 tests/simple/cal_O3.exe create mode 100755 tests/simple/cal_nop.exe create mode 100644 tests/simple/cal_test.sh create mode 100755 tests/simple/dumbledore_cmd_O3.exe create mode 100755 tests/simple/dumbledore_cmd_nop.exe create mode 100644 tests/simple/dumbledore_test.sh create mode 100644 tests/simple/jack_tests/banner.c create mode 100644 tests/simple/jack_tests/cal.c create mode 100644 tests/simple/jack_tests/grep.c create mode 100644 tests/simple/jack_tests/k1.c create mode 100644 tests/simple/jack_tests/od.c diff --git a/.gitattributes b/.gitattributes index 2751d1e39..9cb60e9cc 100644 --- a/.gitattributes +++ b/.gitattributes @@ -327,6 +327,21 @@ tests/coreutils/Makefile -text tests/coreutils/bzip2_manual_tests.sh -text tests/coreutils/cat_manual_tests.sh -text tests/coreutils/ls_manual_tests.sh -text +tests/simple/Makefile -text +tests/simple/banner_O3.exe -text +tests/simple/banner_nop.exe -text +tests/simple/banner_test.sh -text +tests/simple/cal_O3.exe -text +tests/simple/cal_nop.exe -text +tests/simple/cal_test.sh -text +tests/simple/dumbledore_cmd_O3.exe -text +tests/simple/dumbledore_cmd_nop.exe -text +tests/simple/dumbledore_test.sh -text +tests/simple/jack_tests/banner.c -text +tests/simple/jack_tests/cal.c -text +tests/simple/jack_tests/grep.c -text +tests/simple/jack_tests/k1.c -text +tests/simple/jack_tests/od.c -text tools/Makefile -text tools/cover/Makefile -text tools/cover/cover.cpp -text diff --git a/tests/simple/Makefile b/tests/simple/Makefile new file mode 100644 index 000000000..7316b2aff --- /dev/null +++ b/tests/simple/Makefile @@ -0,0 +1,63 @@ +progs=discrete_xform.peasoup integration_simp.peasoup sieve.peasoup knapsack.peasoup dumbledore_cmd_nop.peasoup dumbledore_cmd_O3.peasoup quick_sort.peasoup hanoi.peasoup merge_sort.peasoup k1.peasoup banner_nop.peasoup banner_O3.peasoup cal_nop.peasoup cal_O3.peasoup + +ps_analyze_flags="--step ilr=off --step integertransform=off --step manual_test=on --step concolic=off --step isr=off" + +ps_analyze_concolic_flags="--step ilr=off --step integertransform=off --step manual_test=off --step concolic=on --step isr=off" + +discrete_xform.peasoup: + ${PEASOUP_HOME}/tools/ps_analyze.sh ${SECURITY_TRANSFORMS_HOME}/tests/simple/discrete_fourier_transform.exe discrete_xform.peasoup ${ps_analyze_flags} --manual_test_script ${SECURITY_TRANSFORMS_HOME}/tests/simple/discrete_xform_test.sh + +integration_simp.peasoup: + ${PEASOUP_HOME}/tools/ps_analyze.sh ${SECURITY_TRANSFORMS_HOME}/tests/simple/integration_simp.exe integration_simp.peasoup ${ps_analyze_flags} --manual_test_script ${SECURITY_TRANSFORMS_HOME}/tests/simple/integration_simp_test.sh + +sieve.peasoup: + ${PEASOUP_HOME}/tools/ps_analyze.sh ${SECURITY_TRANSFORMS_HOME}/tests/simple/sieve.exe sieve.peasoup ${ps_analyze_flags} --manual_test_script ${SECURITY_TRANSFORMS_HOME}/tests/simple/sieve_test.sh + +knapsack.peasoup: + ${PEASOUP_HOME}/tools/ps_analyze.sh ${SECURITY_TRANSFORMS_HOME}/tests/simple/knapsack_problem.exe knapsack.peasoup ${ps_analyze_flags} --manual_test_script ${SECURITY_TRANSFORMS_HOME}/tests/simple/knapsack_test.sh + +dumbledore_cmd_nop.peasoup: + ${PEASOUP_HOME}/tools/ps_analyze.sh ${SECURITY_TRANSFORMS_HOME}/tests/simple/dumbledore_cmd_nop.exe dumbledore_cmd_nop.peasoup ${ps_analyze_flags} --manual_test_script ${SECURITY_TRANSFORMS_HOME}/tests/simple/dumbledore_test.sh + +dumbledore_cmd_O3.peasoup: + ${PEASOUP_HOME}/tools/ps_analyze.sh ${SECURITY_TRANSFORMS_HOME}/tests/simple/dumbledore_cmd_O3.exe dumbledore_cmd_O3.peasoup ${ps_analyze_flags} --manual_test_script ${SECURITY_TRANSFORMS_HOME}/tests/simple/dumbledore_test.sh + +dumbledore_cmd_O3_concolic.peasoup: + ${PEASOUP_HOME}/tools/ps_analyze.sh ${SECURITY_TRANSFORMS_HOME}/tests/simple/dumbledore_cmd_O3.exe dumbledore_cmd_O3.peasoup ${ps_analyze_concolic_flags} + +quick_sort.peasoup: + ${PEASOUP_HOME}/tools/ps_analyze.sh ${SECURITY_TRANSFORMS_HOME}/tests/simple/quick_sort.exe quick_sort.peasoup ${ps_analyze_flags} --manual_test_script ${SECURITY_TRANSFORMS_HOME}/tests/simple/quick_sort_test.sh + +hanoi.peasoup: + ${PEASOUP_HOME}/tools/ps_analyze.sh ${SECURITY_TRANSFORMS_HOME}/tests/simple/hanoi.exe hanoi.peasoup ${ps_analyze_flags} --manual_test_script ${SECURITY_TRANSFORMS_HOME}/tests/simple/hanoi_test.sh + +merge_sort.peasoup: + ${PEASOUP_HOME}/tools/ps_analyze.sh ${SECURITY_TRANSFORMS_HOME}/tests/simple/merge_sort.exe merge_sort.peasoup ${ps_analyze_flags} --manual_test_script ${SECURITY_TRANSFORMS_HOME}/tests/simple/merge_sort_test.sh + +k1.peasoup: + ${PEASOUP_HOME}/tools/ps_analyze.sh ${SECURITY_TRANSFORMS_HOME}/tests/simple/k1.exe k1.peasoup ${ps_analyze_flags} --manual_test_script ${SECURITY_TRANSFORMS_HOME}/tests/simple/k1_test.sh + +banner_nop.peasoup: + ${PEASOUP_HOME}/tools/ps_analyze.sh ${SECURITY_TRANSFORMS_HOME}/tests/simple/banner_nop.exe banner_nop.peasoup ${ps_analyze_flags} --manual_test_script ${SECURITY_TRANSFORMS_HOME}/tests/simple/banner_test.sh + +banner_O3.peasoup: + ${PEASOUP_HOME}/tools/ps_analyze.sh ${SECURITY_TRANSFORMS_HOME}/tests/simple/banner_O3.exe banner_O3.peasoup ${ps_analyze_flags} --manual_test_script ${SECURITY_TRANSFORMS_HOME}/tests/simple/banner_test.sh + +cal_O3.peasoup: + ${PEASOUP_HOME}/tools/ps_analyze.sh ${SECURITY_TRANSFORMS_HOME}/tests/simple/cal_O3.exe cal_O3.peasoup ${ps_analyze_flags} --manual_test_script ${SECURITY_TRANSFORMS_HOME}/tests/simple/cal_test.sh + +cal_O3_concolic.peasoup: + ${PEASOUP_HOME}/tools/ps_analyze.sh ${SECURITY_TRANSFORMS_HOME}/tests/simple/cal_O3.exe cal_O3_concolic.peasoup ${ps_analyze_concolic_flags} + + +cal_nop.peasoup: + ${PEASOUP_HOME}/tools/ps_analyze.sh ${SECURITY_TRANSFORMS_HOME}/tests/simple/cal_nop.exe cal_nop.peasoup ${ps_analyze_flags} --manual_test_script ${SECURITY_TRANSFORMS_HOME}/tests/simple/cal_test.sh + + + + +clean: + rm -f ${progs} + rm -Rf peasoup_executable_directory.* + ${PEASOUP_HOME}/tools/db/drop_my_tables.sh + ${PEASOUP_HOME}/tools/db/pdb_setup.sh \ No newline at end of file diff --git a/tests/simple/banner_O3.exe b/tests/simple/banner_O3.exe new file mode 100755 index 0000000000000000000000000000000000000000..8bda73c386f1d556a5039009e9195fb53dd6182c GIT binary patch literal 8052 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 O_ih|h;xtmaSo|Ajbd4YY literal 0 HcmV?d00001 diff --git a/tests/simple/banner_nop.exe b/tests/simple/banner_nop.exe new file mode 100755 index 0000000000000000000000000000000000000000..2dd6f18cc49d78af7569605541293efaaec56eb5 GIT binary patch literal 8079 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 E7e(mL=l}o! literal 0 HcmV?d00001 diff --git a/tests/simple/banner_test.sh b/tests/simple/banner_test.sh new file mode 100644 index 000000000..5c69984a1 --- /dev/null +++ b/tests/simple/banner_test.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +$SECURITY_TRANSFORMS_HOME/tests/simple/banner_nop.exe hello > outputfile1 +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./banner.exe hello > outputfile1" --prog banner.exe --outfile outputfile1 --name hello + +$SECURITY_TRANSFORMS_HOME/tests/simple/banner_nop.exe 12345 > outputfile1 +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./banner.exe 12345 > outputfile1" --prog banner.exe --outfile outputfile1 --name numbers + +$SECURITY_TRANSFORMS_HOME/tests/simple/banner_nop.exe Hello World 1234 > outputfile1 +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./banner.exe Hello World 1234 > outputfile1" --prog banner.exe --outfile outputfile1 --name HelloWorld1234 \ No newline at end of file diff --git a/tests/simple/cal_O3.exe b/tests/simple/cal_O3.exe new file mode 100755 index 0000000000000000000000000000000000000000..d6e0ea1762a7fde37733683cc42e6478f0aa8e91 GIT binary patch literal 7548 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 Oh4b%~<9~q*7V*D(-<p~L literal 0 HcmV?d00001 diff --git a/tests/simple/cal_nop.exe b/tests/simple/cal_nop.exe new file mode 100755 index 0000000000000000000000000000000000000000..780f7dc3b7e04e2e8a62572005d78318e1265369 GIT binary patch literal 7548 zcmeHMdvH|M9X|Vr*+3)-M2!&Owk|bkhc!U7MeRsPmY2K<ibcF^vYYJcW|P^ytE2;w z^g?C31Q?{%POSxNUrrx7ZL!r#H-rJ~Yod-*rqgj~h0fAMXYHgmDrNh9=iD1ML8sF{ zJLB2;?K$81edl+6=XuXP_hJ9aB@Tx}*ug1Wf@simd+HJYtU_t(g(f_rM$8g3#8t?m zu6`#t5Lp0)ije1qxTpiJ?}Z*R4VXe5ZBt}mS;*E>At)>_%9XyfOo-BNxjmFaC=i5E z)=Rw;kp{g69c2)hLOtuCEJK-PsGHIROtE$A&Kp6%D}r5qJ@ke3kAO*GdHQ}+G}3ZY zG&naJi6yuB5}m&JN(a}Ze(CCsNGU&Q6Ryg#m5A9l)SrI+v6<C_$<y6O&jt2%KE0tP zKI<OpJP@|e_6129>^>_7B2V@eVse>Bz0A{uhNR5<(VcH*m@W*q9p-6}1x#3BD&oa9 zKumnw1nirDYbW68z)z&z9`;oQ2TRx6J33=}!U)6-T^H!OR(9DfLSMcHxxq+GPbNY^ z5!x0pL|4*C@UJx-h>NaxBxbb10LxegIs%cHSh{lg;zoVGuTIwOL?5Uh+vdQJ<3M33 zk3_C!FEuMDa+ohyk$BkcDMsvOj8610M#q*ihV$i&(V>-$F&G<D=Qo(c?kvr0?j6Wf z3z2^GVm_bW{i;!vorT<N1<YkHVlXyset95&^C)V{&$)<ymdVdyjbSD)oJFzx9M&AB z?!utN^dL;PFJvU9C*dmMXC<abVU75(#Plp&Lwo=ju?+Lxx-az?^IUFi^ZM}FuYi%m z-@3cPyLP!f*~dT}IWR6*?b`YI!!Re3cN}>d@rzaPx_77&|NS30%^}CaGl^M!M_GZH zaeSMUeC2McC4J$Uc=luw4LHmb?#){U`ixJBzF*x)KJ1&rRY$79-JLO}{(^Z(l$>&V znU^1YdEfv!=W^z-X72Df9<GAwUCf|t3A{y`C9+o|4Xv|m*AQUZUutIDX_0b!v&S%a zsU~l^x!qeX%Jv-rWU{nu|JRU|Opjt7Qp{?otHFE-uouZP_*u3;LNd){9clOOt!PWS z*;}1z_IhC44L7Fjg-dOhq)UsS&fd>-led&ZgxHf|nI@D0pO)y{C0K=y6fralxm87^ zA<NA?QZ|EPLQw@@s`ewZ=ZxLxD%5bGu&u9RhQYkuf}aCkZo&6}P_l}C{^8&GJZh7^ zAa4fqo<SbclTbyrhiS{N3wN?$lb5@b7%E4x%9A_kCEcoYpn}SufYI|ex^MN3)h9R5 z?s`>M6=ueG?Wd`&AJaO=Yv)sYt@5Lk9SRpbR_vCs+uK0SKd{PJb>CVCD5cBbC8_k# zZeps^n|%~MDw?y9_Qwgd=ormaNPBw%&0p9j9JtD{fujQ{4BS(Q*+a|5dgu(t(S_+% zHMwlxGis{H;kW}$K-Z&y$Tq6<8aC}lq+cG8OQigi|04BizbEA%8LBaNjNa6975*3Y z6w5_3v>?6lVrsDetkW^*$hiEYX0|TnznJ!qlpPgi$1*A8>=+egU(J~Q5y!4f@};!@ zqGh~BTFqf9(ROv(pF^2lnX*IR=D;;dkcF9lQeX*=NE;o}#_MwSIaq3n*^zUolDBKg zit)TRha8xwIZT0*stM?y6(3lQ!@lWF`^!`QVLAZKchI>od9vsrdVS`}qOT*GWz_`r zm!UQ@#i{<!tQvXYQSb7Dsnh@Zd!Kt!>UjVA&eZAt(b=ijY6nthfdA^MJ)SyUJ7|tN zjAC=tX-pj|QD&=$ik0DMr_e-n>`<k2e&+#HhVF9sN7#1c-RAdfKbQWfs$d^|?y4P3 z{f0@no!&T-!U$j#{KJ;*3(unhb4SjVWKWkJm6hB+Ejb-kOh!(6BQg)NX7l*uJqKiB zN3NvDn_iWBp}noGjV&B&+$**HsncerE_FQZAKp`L`iC7K##5fj*`RzIUxdXt6EIN4 z$!kyfd4R#}s&rW+F`V+lG<(2y7`<{EW=7uv?zJbp*vHkwp<K?M(X@ZGZ><~uX2zB3 z?|*N0|Akq7Zb$#9v(N2Bzx3`H_2A*xvxLMwo8QalUzojnXq{?Wks3GIv|98bDZd_1 zDK4O3bYSibp1VD6G{W_f!*k_KI8hGAFF)eYgo)3iyYJeNU4zc(9e59Wo;h5dojsb* z_q|w!cK4b5uRYbDcka#`-g)nG;$pYq%;mn0)#>);5B-!Z^Q2?prT81>iR#Vw>01WU z)n3%Ay3Boq=T>txZ%liUskQ^=kUKw^b|EV{V#<f)7&pt2!I>foZ?aLiau3cAJmWcV zZdnnCB?Iwpu_V+Imx)z@cxzZR;BXWbs{-9(MKTt`U$k2^B-@h-Lu?3j8KI7rP+Y8O zH98ru?tD;XG=*AKBAE!Zhi=tc15s@=PG?4Vi`E^&kxSFGISFk}a*~)dNt7TkS)$GH zEl3brF<1;llLYv(5dS8L#etv}h_@#@LNSBQ`Z#>t1OGQYfHf`8(RNJ7`RL%G9IvOM z2JggpnGoBp_nW<VxBTa&d}jtR-@Uee3GWt&&jRz9bsuChgypY+FmPRuU`N2IPt-xM z=JB2+#C4ESlxI4JnD1U52;Z9-<22DZh<y0gNuP3vj{zh3KL@@u+l69iQx9Yx<Vnbn zA;%!L{=dcA22ER~H77OgZml`2X-hP1Lt&Z2=&SETo`XCOc?r@FISKhK<W<O@A?F}( zLB#BtvuEKa|6pioW8<w_&Bm5w%t&hWzIxw+x%EkjZmv~W2w$SR!w9q>HsUG{+bO(3 zhT>hq7wa@azJ|ri=Nf@_3$@3RzLsPJ@9~kK@DYUriLmemyJN7YVk53J4~F82NM~#u z(4mWmqU5VYSJV)`NDQyBJ|naZ|7`$Jbp``QK=?voy)7Q-2nipy<#+-WsObJy7=n>N zN2C=MbfO^seA1dK*^&UewX@@Y-Bf3w|2S7T*W_Ic0Oyk(sAISRf+x4+$vYD$G+;aM zU7lec#O8%D$HU;sL#@=RI}Rq7LAV}RFW1Ok@amD~+F+nPN)zN=%wzJnhB8*Y6M3tl z=Q<*fYwIj{JCUX@NJ?8=V|PKgzR2TR+=>L(pdH9%U>?^Id0az$g=BfVUglFCfN<S0 z&9yg(gobosy@2A2kP--aT)R0WxPWYXY%8$|v3XqUqu_B5AdmZs&D)DKePurPoEkKW zJUfub@Cd}_Z31r-cwJJX{>Y;ogxEaZ>kWeULpH(+Y&*l_5Szz6ZaX?1_Z(xvuJ=ic z$M!xB-s9k%7-OkA3BL=WJ@W3w`_8@CL~R?$8cRQmG<k4K-TC3dtZ)Oe%kY$K^LY7C z`4PNh1w39dRD);RfNCr~fHeD<^~$?M@CK2#yM|@x$L}C^y}UoleTY4BUn$^mj~@Zg zi#$7!L-`ZLwx{8xK*Ip+M4lZqD{&Sv>!*K*!8;7zAPZVSv*PoJnO$dL@@}xwjHsjV z*+N@(7y$2W8z8n#Gv=7tA$YA288|)@8FL|Q1B%MITxidW4QEq9LE9dvR|M`y%v86{ z>aJE{Wq|vO!m0-DBMP&2_%nvN)2Mxcu}hAqkn3MzHJbLb(q+vou4kp^id5@XVLrLl zvshv7JZc>(%##4xX+0xda^+%N#_$xW=lWs7C2xP#I#HNCr`ChQ92GV173Py4=K{<h zh1HJDd8{x`3_{LVh1JP|^HO0976Rv=!aP}kkNKmpyo{3bN#W}mjRlvOJ~j`S=@#$g z*<!xM5Ib-y%sXD&KL?&DHNdui4xDIiCK30IjGSVMxDzqwFXw|pTra+Wn0JUAN#Zc# ztp)tTdBghoCQ)8ce=jii6GSLqA@(CKtp6LpYpwog{m+qT1={02V)u{3d7bz@u-!i4 zoGRX!fZqYO&rA;IHR63@t3NeSC5qrM?^-z%r=q@VfM){#(!$e$?fF6dCxGpsAyGF0 zHvw~BW&iLFofmZWe42{+w61{9*%F+9dx4)QD1QLh_O~4VeiL{r{I8SttHe{l<|A&; z7GV1K17NS!z6xiRI10=gVW>rgbD9_c=Cv}%k^I+y?LdFd1M`l9&$J5EcLDe;?C%67 z|7~E-2SBv$o&5X2i-0+k$<G6KJ#|^{F4$9OzY@5x{0!g>%0G*86_`(-oWP$Cyuz9f zQ=L=9a$w$v=MmGN)rk3=r9V?~(r*Udx(8=f*rQ&w#*KuLY-{ti;%h`>^P2Vg%H<oH z@ijx&o5rCPjRmS;r`{gzYzahldD7DZ$!!9sxUOi(2nBtgt(!kjP@zYH+lUqjc|6pE z$&QY0yB`1QCRxpr^$n~1x{X+koxWU)JXWe&0#UlUbmf}G4J-9EOO|Z#H|xy}i&y&T zGLNWwARZ5N>!Db1e1`l?BlM<wRyV9#-Y9tfR9{{|lb>N)6G>g3Ywr)l=7}-gxNkiA ziU;-eq4r1uXYa;nAdv_qgx=PrhaW=3GqLrBXVId|UvjSa$}>(m{!@{z7x<OH{e_4n z<%I_niB3Hnhy|k|I4sA;?x!*D<q2JVTPm!BX1eg&fO0r*TMY{ay5Tc>iC?A)>3T?> s%~2o{YnLCd#%cA)EuXu^*B&zTu2$U$Cu0xzTDA%K^-A`?z}1WR50Be0hX4Qo literal 0 HcmV?d00001 diff --git a/tests/simple/cal_test.sh b/tests/simple/cal_test.sh new file mode 100644 index 000000000..1bc6e58c6 --- /dev/null +++ b/tests/simple/cal_test.sh @@ -0,0 +1,107 @@ +#!/bin/sh + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name NoInput --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 999999 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 999999 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name BadYear1 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 0 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 0 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name BadYear2 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 0 2011 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 0 2011 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name BadMonth1 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 13 2011 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 13 2011 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name BadMonth2 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 13 0 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 13 0 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name BadYearMonth1 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 0 999999 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 0 999999 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name BadYearMonth2 --exitcode $exitcode + + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 2011 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 2011 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name Year2001 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 1500 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 1500 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name Year1500 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 1 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 1 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name Year1 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 2000 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 2000 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name LeapYear2000 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 1804 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 1804 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name LeapYear1804 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 1 2011 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 1 2011 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name Jan2011 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 2 2011 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 2 2011 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name Feb2011 --exitcode $exitcode + + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 3 2011 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 3 2011 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name March2011 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 4 2011 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 4 2011 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name April2011 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 5 2011 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 5 2011 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name May2011 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 6 2011 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 6 2011 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name June2011 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 7 2011 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 7 2011 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name July2011 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 8 2011 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 8 2011 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name August2011 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 9 2011 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 9 2011 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name Sept2011 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 10 2011 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 10 2011 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name Oct2011 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 11 2011 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 11 2011 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name Nov2011 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 12 2011 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 12 2011 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name Dec2011 --exitcode $exitcode + +$SECURITY_TRANSFORMS_HOME/tests/simple/cal_nop.exe 2 1952 > outputfile1 +exitcode=$? +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./cal_nop.exe 2 1952 > outputfile1" --prog cal_nop.exe --outfile outputfile1 --name LeapYearFeb1952 --exitcode $exitcode + + +rm outputfile1 + diff --git a/tests/simple/dumbledore_cmd_O3.exe b/tests/simple/dumbledore_cmd_O3.exe new file mode 100755 index 0000000000000000000000000000000000000000..deeaa78f185d77653eff2dd8b7af80f0cdc58aab GIT binary patch literal 7284 zcmeHMU2Igx6`r-%up}=2Tfii4bX81aB(t%>5EHcxU@ykR{F}cLxU6@ty<6M6?(SV; zr%4-k<0PxaDQf%Bs%lzfDXNen(NqE|BI48tO2va4rIJ;l%55RCYc~Rwrc`y=e&5W_ zdTm;%ed~iqI(N=D=ggdQ&z!k;?%Z#9TedkI4xvk)$QMNC5>8hg>Y5TIsS}29i7N4g zcw8((6J>R;KnEl{pi=?boS=Nlfb04p2bBSnDC5{9S=bj8SS$pI{Y9~o7ZwRo_#>x_ zRE!QaAljuo50wGA0U2o&m_#{kkhVjAJ8Y90fk|4n_qH7Xe5mOD`ykJ?e-D}@_NVVp zb%olV>I$sw3Wejno>;`QPRZb!lsD}<08aVIG2yE0>qgDkP(JqPGaoNGYfUeI?I*wd z_>;oG<ca>BlxZKx%Xpy9Ews=3Cs9r;^$cNvmHa!;{c)IlZlRto2ADM(pe_Y9&BGh# z;m3eyUURw_gAz`HX?Ao+!e-3&MQzg*2#KGe*eJ~A-DnMj!e%^X1)$dx4TbG?(;w^v zfWE(zyxHyxb)kVBGoy6-LSfO=(!907T<59Fay40QJz8a9mOACVJHRpSBo=ol^chC` z2zc2palY_pu)Q+0gwgA!GRhs~&msor$4=K`)K1n2u8TD$p^!Ch`atsb{=~F%f_;wm zj|^7`k^0U|I-MT)&@PyG0<9Bwd3hdv4j;WflHPD1Bd1r-;L1Mf)wB>KJ2{SS>D9Cp zq-=6jVp<H+<;h`*X*pO<d=413EVX|=p8S2{)}1}A`+}P>AHhAi>^&GX2Ar;m3sAgw zdQQps{mK_BFr0`#d&WS0sT^MQPq}gZ;2(L3DaWR<*b{^2X&^D|7@|trJwUNk-!vAT zxLUvg9EmH=qsK-D?azzB_nxFa#!pO_pQ(WEz_49<k!@g>Tys{kEj@aDWWGO#4kD7( zskqBJ!xfSA-l`o=y<AvyetFU5UnTzji2c&Q^}%B|;;yM!`{{w}cIg}Le7IF~-n~dE z#Q*fSYg`{!8w+lT_|qxxjpX8#cQo1LOnE;_Hn~#Xv1C(W%6l`}RGjjTC!5?U?=5S6 z0j<SXC9YH-J#HQwsU3!q(-<}X4fkS<pSWKhzdQAt+Tp1)gD1tr*B+$PsCj?4?i@Op zn66KG3$4^L>2hmjb?t|VmtA@G3zsVqm-of%PS?-*jQh*m@x@mQ%F(v<T4SY)Le$PO z$Pp4I+Jplm7hRS*6jjcOlISt<hkvHi2nbAA>!r1#fh4*muGAkllhX*koTpTeb2ebX z+F^w3rAl|aaO!y_S8?Ng<;Lx5qth)?jg{^pItHeEs7f&vL)D5ghH4a3IaH^Zs-b!? zlVwOQ1n0d89~{iiDdICfA27cYyWw&F$oE&m@9Bz(_pwk0FO_3}!33{su6>Zs8%W!g zwV$TE#k_0878T~tm2_67zxy+4C9XO)J&67;aiv1eSE`~Csg%j*Gkh;3?x*dtOXS*5 zC#Ia~(NsQ~;`daNW_9(NErd4{({SYo)+h7Ff#<-X(2KrkzzBtn)+io7p>T(24f?{J zMqeaeZLE%Y9ucD1h+6(gcefP|7<SNSQ)YBnw&626qP~D-MB0tjej^fwG!!#@u~?`h z3~ig87s^5e79y|^frSVxL|`ET|JM<~o<r`lbxmivW8<d05LAV4VtibPo0;#RQ~0+0 z>w|RUB5Hnv)qfM;5~#<3`R4BfJqlv~Wgr&rJMLk}BEMn5b34gT>=hsv#+RSlsQFFC zj|1*0S!2%_8OHeVEkd8}pnew^?EhT&&8$0xVe9LlH$iWKbbBM1riO-RjH&}|@vt2? z>O6Ix^=s?m5^Y$cun?YDU$^aRLv2S@9n>7Y`mAV=@Ps3_<=L{ed9Cg1$e@mJ+|w2h z;Tt*>5FVnSFBTM@KwlW+soIVz$w@033q`_nfC*XD>Y~14db(`k!S)ST+v>%&9RQ+8 zz-Rk}#|oP5QD3(uJbpV8jlqDbzT(F~7{u2d^20y`9dYr<(Nxd27_`;q&(^W|Z|cXP z#ChU8%X1I_&ZRDtv8)2&=tJts^9l$IU|smV%~A`}dO_q@5PFqTqApr*J0NqBcA1~2 zpjQo^dC5XOQX}Y7<Pi0kzZWxh=j-i)oH<NA=Jgo#PJpK`VC7iM?}H%bHubm;>cKGo zb)hcHaS(Hudd%N<!EkM9yKE<Qf|&E<nfJqBHiOT#3n*R$;e%fG5zJpW!6eq>@m`4& zAg#xB=7OGqHtKOrYrRw8=_}j0-m9Qj16~*EvAhn_dWWHR7<zl8L|v#y`Zh@G@l5R; z^r}I+Fm^2818F@zUv9zyoH1mJw)<8_k8!yVz5CD$X0?<}!nZ*jk9sHYg?R#j(_^41 z%bx>JJ-Q^%+i+OLc<G}1TtI`?<H3OYKj>Y~(c=L?1@!b798>cn;2C4umFIZS8wJn# zWuYGZxB=33c~*1h-;77yU+3uY`Fam}^W#Uo-{$BQ<FmFH6Ttk_Mf*372HK~8Jo%`A zo&jDLt#=y@^sgo(px!F2l#x-+=Q_vI<yq)`q5*2^u(0Nw=`xNN#~v8_EE?8=Xct{& zF6WL{g9Ez8oQ`@ts6JHqJYu6d=~d^X3abJ5d{J0g;B!P_b=Q1eD9k5~dM+r;8CC0F zVKtljJ(ZuyEUsrI=ZZwZx?q(r)b}#ir^0;lsCB5YnklX~g}HLoS+&ATCFc537)gM_ zb)qmMC**oiSiWs#-Yd+vF5bz=ABEKun|Z7--`2>3ELLxI=B1J^mvZKx!hEY^zK}l( z^EglClfpQW$SL{av1}f&*(vU(dB<Fr#15R)Vw$u5Iq*iQ0@nUHu$$NbJf4Y9o>(fL zqa5~`4-T<Xd>J**_c)WpLDZXHRpV1XH*aX4FTLU%`~ARto}hwmiTD=kT>C!&K9`9% z$NMQ2Glk>*0=$loBX5Nm1J?H^@=C?zJUj!e<L$^>CJNx7j;A5Y1^*539F&<@3VQ}H zpR<4xKMAah0cPVoyaSl|!FcdodvA`M+0Y5B^Qjak`CpwUe-n5nr~eOuwSUF%?<}x8 zGyf%d<>CS`PhT;#D9I}mSAcnh%Xy*y9|6mwTHs>DYaCb?`ZEK}vpZ%|3Fgm%CHsZU z_|#tn%+p79D}nt&;N0=bfO|0C??6s_p94M%`+%Y}Z>iV>%(LVb7=ZFG0rNd5<$O~5 zqjt=Wx3_!zIJ|FY-M!CjY2M$8KLDoLI0x-$$Poo1W=B_~&DUkhotNp0_X_N)db%vz z3V5EbSywA4FhhY}qV+;<*UUh?ySq=@@$PDrX149yveRp7L^GP7wIa89(h7!X>#_oo zsAc-Q1N6G7W%t%CE#~fR+xB}~&DJejTfFq1yGPR(jr#gb9Q4g?kbgOZ*?45vmYvNF zf?GrN&jM=l2ZlcuH|3Ty+dSv*h`HmWxzFkd#jqo8=)wV^6%%HAj~RRc1I+#(*}Pf* z{otRD%z*R%kjyI8Jp8X^j%R^b#Kc)<pv!_4IXOB|S)b*W*)*}s%{o5!56!H#I<bp8 zXc-)N><L!xk)xI`u;0c{o({9Ox0iw2SijMO^HH<MZ`#3lxYN_tE9B1|8D#M<luP{x literal 0 HcmV?d00001 diff --git a/tests/simple/dumbledore_cmd_nop.exe b/tests/simple/dumbledore_cmd_nop.exe new file mode 100755 index 0000000000000000000000000000000000000000..51d1db3a9093191360c3e75968049c1227bd450c GIT binary patch literal 7314 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 literal 0 HcmV?d00001 diff --git a/tests/simple/dumbledore_test.sh b/tests/simple/dumbledore_test.sh new file mode 100644 index 000000000..5c3bbb795 --- /dev/null +++ b/tests/simple/dumbledore_test.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +$SECURITY_TRANSFORMS_HOME/tests/simple/dumbledore_cmd_nop.exe > outputfile1 +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./dumbledore_cmd.exe > outputfile1" --prog dumbledore_cmd.exe --outfile outputfile1 --name NoInput + +$SECURITY_TRANSFORMS_HOME/tests/simple/dumbledore_cmd_nop.exe Ben > outputfile1 +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./dumbledore_cmd.exe Ben > outputfile1" --prog dumbledore_cmd.exe --outfile outputfile1 --name DInput + +$SECURITY_TRANSFORMS_HOME/tests/simple/dumbledore_cmd_nop.exe "Wizard in Train" > outputfile1 +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./dumbledore_cmd.exe \"Wizard in Train\" > outputfile1" --prog dumbledore_cmd.exe --outfile outputfile1 --name DInput2 + +$SECURITY_TRANSFORMS_HOME/tests/simple/dumbledore_cmd_nop.exe "Wizard in Training" > outputfile1 +$PEASOUP_HOME/tools/manual_test_import.sh --cmd "./dumbledore_cmd.exe \"Wizard in Training\" > outputfile1" --prog dumbledore_cmd.exe --outfile outputfile1 --name BInput + +# cleanup +rm outputfile1 diff --git a/tests/simple/jack_tests/banner.c b/tests/simple/jack_tests/banner.c new file mode 100644 index 000000000..1accc98aa --- /dev/null +++ b/tests/simple/jack_tests/banner.c @@ -0,0 +1,193 @@ +#include <stdio.h> +/* + * improved banner program + */ + +/* + * bit pattern character table + */ + +char btab[][7] = { + 010, 010, 010, 010, 010, 00, 010, + 024, 024, 024, 00, 00, 00, 00, + 024, 024, 0177, 024, 0177, 024, 024, + 010, 034, 050, 034, 012, 034, 010, + 0161, 0122, 0164, 010, 027, 045, 0107, + 034, 042, 024, 010, 025, 042, 035, + 04, 010, 020, 00, 00, 00, 00, + 01, 02, 04, 04, 04, 02, 01, + 0100, 040, 020, 020, 020, 040, 0100, + 0111, 052, 034, 0177, 034, 052, 0111, + 00, 010, 010, 076, 010, 010, 00, + 00, 00, 00, 00, 00, 040, 0100, + 00, 00, 00, 074, 00, 00, 00, + 00, 00, 00, 00, 00, 00, 040, + 01, 02, 04, 010, 020, 040, 0100, + 034, 042, 0105, 0111, 0121, 042, 034, + 030, 010, 010, 010, 010, 010, 034, + 034, 042, 02, 04, 010, 020, 076, + 034, 042, 02, 04, 02, 042, 034, + 02, 06, 012, 022, 077, 02, 02, + 076, 040, 040, 074, 02, 042, 034, + 02, 04, 010, 036, 041, 041, 036, + 077, 01, 02, 04, 010, 020, 040, + 034, 042, 042, 034, 042, 042, 034, + 036, 041, 041, 036, 04, 010, 020, + 00, 00, 00, 010, 00, 010, 00, + 00, 00, 00, 010, 00, 010, 020, + 02, 04, 010, 020, 010, 04, 02, + 00, 00, 074, 00, 074, 00, 00, + 040, 020, 010, 04, 010, 020, 040, + 034, 042, 02, 04, 010, 00, 010, + 076, 0101, 0117, 0111, 0117, 0100, 076, + 034, 042, 0101, 0177, 0101, 0101, 0101, + 0176, 0101, 0101, 0176, 0101, 0101, 0176, + 034, 042, 0100, 0100, 0100, 042, 034, + 0174, 0102, 0101, 0101, 0101, 0102, 0174, + 0176, 0100, 0100, 0170, 0100, 0100, 0176, + 0176, 0100, 0100, 0170, 0100, 0100, 0100, + 036, 041, 0100, 0100, 0107, 041, 036, + 0101, 0101, 0101, 0177, 0101, 0101, 0101, + 034, 010, 010, 010, 010, 010, 034, + 02, 02, 02, 02, 02, 042, 034, + 0102, 0104, 0110, 0120, 0150, 0104, 0102, + 0100, 0100, 0100, 0100, 0100, 0100, 0176, + 0101, 0143, 0125, 0111, 0101, 0101, 0101, + 0101, 0141, 0121, 0111, 0105, 0103, 0101, + 076, 0101, 0101, 0101, 0101, 0101, 076, + 0176, 0101, 0101, 0176, 0100, 0100, 0100, + 076, 0101, 0101, 0111, 0105, 0102, 075, + 0176, 0101, 0101, 0176, 0104, 0102, 0101, + 076, 0101, 0100, 076, 01, 0101, 076, + 0177, 010, 010, 010, 010, 010, 010, + 0101, 0101, 0101, 0101, 0101, 0101, 076, + 0101, 0101, 0101, 0101, 042, 024, 010, + 0101, 0101, 0101, 0111, 0125, 0143, 0101, + 0101, 042, 024, 010, 024, 042, 0101, + 0101, 042, 024, 010, 010, 010, 010, + 0177, 02, 04, 010, 020, 040, 0177, + 07, 04, 04, 04, 04, 04, 07, + 0100, 040, 020, 010, 04, 02, 01, + 0160, 020, 020, 020, 020, 020, 0160, + 010, 024, 042, 0101, 00, 00, 00, + 00, 00, 00, 00, 00, 00, 0177, + 020, 010, 04, 00, 00, 00, 00, + 00, 076, 02, 076, 042, 077, 00, + 040, 040, 074, 042, 042, 0174, 00, + 00, 036, 040, 040, 040, 036, 00, + 02, 02, 036, 042, 042, 037, 00, + 00, 036, 041, 077, 040, 036, 00, + 010, 024, 020, 070, 020, 020, 00, + 00, 034, 042, 042, 036, 02, 014, + 040, 040, 076, 041, 041, 041, 00, + 010, 00, 010, 010, 010, 034, 00, + 02, 00, 02, 02, 02, 022, 014, + 040, 044, 050, 060, 050, 044, 00, + 030, 010, 010, 010, 010, 034, 00, + 00, 0166, 0111, 0111, 0111, 0111, 00, + 00, 076, 041, 041, 041, 041, 00, + 00, 036, 041, 041, 041, 036, 00, + 00, 074, 042, 042, 074, 040, 040, + 00, 036, 042, 042, 036, 02, 03, + 00, 054, 042, 040, 040, 040, 00, + 00, 036, 040, 036, 01, 036, 00, + 020, 074, 020, 020, 022, 014, 00, + 00, 041, 041, 041, 041, 035, 00, + 00, 042, 042, 024, 024, 010, 00, + 00, 0101, 0101, 0111, 0111, 066, 00, + 00, 042, 024, 010, 024, 042, 00, + 00, 042, 042, 042, 036, 02, 014, + 00, 076, 04, 010, 020, 076, 00, + 03, 04, 04, 030, 04, 04, 03, + 010, 010, 010, 010, 010, 010, 010, + 0140, 020, 020, 014, 020, 020, 0140, + 060, 0111, 06, 00, 00, 00, 00, + 0177, 0177, 0177, 0177, 0177, 0177, 0177, + +}; + +/* + * subroutine to make the characters for a banner + */ + +char * +mkline(s, prch, line, space) + char *s, prch, *space; + int line; +{ + char *rs, *rl; + int bit; + int i, j, m; + + rl = space; + for (i = 0; i < 7; i++) { + j = 0; + for (rs = s; *rs && j < line; j++) { + bit = (bit=(*rs++&0177)-'!') < 0 ? 0 : btab[bit][i]; + for (m = 0100; bit; m >>= 1) { + *rl++ = m&bit ? (prch ? prch : rs[-1]) : ' '; + bit &= ~m; + } + *rl++ = '\t'; + } + while (*--rl == '\t') + ; + ++rl; + *rl++ = '\n'; + } + *rl = '\0'; + return(space); +} + +main(argc, argv) + int argc; + char **argv; +{ + char prch, *space; + static char buf[256]; + int line; + char *malloc(); + + prch = '*'; + line = 10; + while (**++argv == '-') { + --argc; + switch(*++*argv) { + + case 'c': /* char to use */ + prch = *++*argv; + break; + + case 'l': + case 'w': + line = atoi(++*argv)>>3; + break; + } + } + space = malloc((unsigned)line*64); + printf("\n"); + if (--argc) { + do { + *space = '*'; + printf("\n%s", mkline(*argv++, prch, line, space)); + } while (--argc); + } + + else + while (fgets(buf, sizeof(buf), stdin) != NULL) { + printf("\n%s", mkline(buf, prch, line, space)); + } +} + +atoi (str) +char *str; +{ + int i = 0; + int retval = 0; + + while (str[i] >= '0' && str[i] <= '9') { + retval *= 10; + retval += str[i++] - '0'; + } + return (retval); +} diff --git a/tests/simple/jack_tests/cal.c b/tests/simple/jack_tests/cal.c new file mode 100644 index 000000000..eb8175d68 --- /dev/null +++ b/tests/simple/jack_tests/cal.c @@ -0,0 +1,206 @@ +char dayw[] = { + " S M Tu W Th F S" +}; +char *smon[]= { + "January", "February", "March", "April", + "May", "June", "July", "August", + "September", "October", "November", "December", +}; +char string[432]; + +main(argc, argv) +char *argv[]; +{ + int y, i, j; + int m; + + if(argc < 2) { + printf("usage: cal [month] year\n"); + exit(0); + } + if(argc == 2) + goto xlong; + +/* + * print out just month + */ + + m = number(argv[1]); + if(m<1 || m>12) + goto badarg; + y = number(argv[2]); + if(y<1 || y>9999) + goto badarg; + printf(" %s %u\n", smon[m-1], y); + printf("%s\n", dayw); + cal(m, y, string, 24); + for(i=0; i<6*24; i+=24) + pstr(string+i, 24); + exit(0); + +/* + * print out complete year + */ + +xlong: + y = number(argv[1]); + if(y<1 || y>9999) + goto badarg; + printf("\n\n\n"); + printf(" %u\n", y); + printf("\n"); + for(i=0; i<12; i+=3) { + for(j=0; j<6*72; j++) + string[j] = '\0'; + printf(" %.3s", smon[i]); + printf(" %.3s", smon[i+1]); + printf(" %.3s\n", smon[i+2]); + printf("%s %s %s\n", dayw, dayw, dayw); + cal(i+1, y, string, 72); + cal(i+2, y, string+23, 72); + cal(i+3, y, string+46, 72); + for(j=0; j<6*72; j+=72) + pstr(string+j, 72); + } + printf("\n\n\n"); + exit(0); + +badarg: + printf("Bad argument\n"); +} + +number(str) +char *str; +{ + int n, c; + char *s; + + n = 0; + s = str; + while(c = *s++) { + if(c<'0' || c>'9') + return(0); + n = n*10 + c-'0'; + } + return(n); +} + +pstr(str, n) +char *str; +{ + int i; + char *s; + + s = str; + i = n; + while(i--) + if(*s++ == '\0') + s[-1] = ' '; + i = n+1; + while(i--) + if(*--s != ' ') + break; + s[1] = '\0'; + printf("%s\n", str); +} + +char mon[] = { + 0, + 31, 29, 31, 30, + 31, 30, 31, 31, + 30, 31, 30, 31, +}; + +cal(m, y, p, w) +char *p; +{ + int d, i; + char *s; + + s = p; + d = jan1(y); + mon[2] = 29; + mon[9] = 30; + + switch((jan1(y+1)+7-d)%7) { + + /* + * non-leap year + */ + case 1: + mon[2] = 28; + break; + + /* + * 1752 + */ + default: + mon[9] = 19; + break; + + /* + * leap year + */ + case 2: + ; + } + for(i=1; i<m; i++) + d += mon[i]; + d %= 7; + s += 3*d; + for(i=1; i<=mon[m]; i++) { + if(i==3 && mon[m]==19) { + i += 11; + mon[m] += 11; + } + if(i > 9) + *s = i/10+'0'; + s++; + *s++ = i%10+'0'; + s++; + if(++d == 7) { + d = 0; + s = p+w; + p = s; + } + } +} + +/* + * return day of the week + * of jan 1 of given year + */ + + +jan1(yr) +{ + int y, d; + +/* + * normal gregorian calendar + * one extra day per four years + */ + + y = yr; + d = 4+y+(y+3)/4; + +/* + * julian calendar + * regular gregorian + * less three days per 400 + */ + + if(y > 1800) { + d -= (y-1701)/100; + d += (y-1601)/400; + } + +/* + * great calendar changeover instant + */ + + if(y > 1752) + d += 3; + + return(d%7); +} diff --git a/tests/simple/jack_tests/grep.c b/tests/simple/jack_tests/grep.c new file mode 100644 index 000000000..d49f0e3e1 --- /dev/null +++ b/tests/simple/jack_tests/grep.c @@ -0,0 +1,523 @@ +#ifndef lint +static char sccsid[] = "@(#)grep.c 4.5 (Berkeley) 8/11/83"; +#endif + +/* + * grep -- print lines matching (or not matching) a pattern + * + * status returns: + * 0 - ok, and some matches + * 1 - ok, but no matches + * 2 - some error + */ + +#include <stdio.h> +#include <ctype.h> + +#define CBRA 1 +#define CCHR 2 +#define CDOT 4 +#define CCL 6 +#define NCCL 8 +#define CDOL 10 +#define CEOF 11 +#define CKET 12 +#define CBRC 14 +#define CLET 15 +#define CBACK 18 + +#define STAR 01 + +#define LBSIZE BUFSIZ +#define ESIZE 256 +#define NBRA 9 + +char expbuf[ESIZE]; +long lnum; +char linebuf[LBSIZE+1]; +char ybuf[ESIZE]; +int bflag; +int lflag; +int nflag; +int cflag; +int vflag; +int nfile; +int hflag = 1; +int sflag; +int yflag; +int wflag; +int retcode = 0; +int circf; +int blkno; +long tln; +int nsucc; +char *braslist[NBRA]; +char *braelist[NBRA]; +char bittab[] = { + 1, + 2, + 4, + 8, + 16, + 32, + 64, + 128 +}; + +main(argc, argv) +char **argv; +{ + while (--argc > 0 && (++argv)[0][0]=='-') + switch (argv[0][1]) { + + case 'i': + case 'y': + yflag++; + continue; + + case 'w': + wflag++; + continue; + + case 'h': + hflag = 0; + continue; + + case 's': + sflag++; + continue; + + case 'v': + vflag++; + continue; + + case 'b': + bflag++; + continue; + + case 'l': + lflag++; + continue; + + case 'c': + cflag++; + continue; + + case 'n': + nflag++; + continue; + + case 'e': + --argc; + ++argv; + goto out; + + default: + errexit("grep: unknown flag\n", (char *)NULL); + continue; + } +out: + if (argc<=0) + exit(2); + if (yflag) { + register char *p, *s; + for (s = ybuf, p = *argv; *p; ) { + if (*p == '\\') { + *s++ = *p++; + if (*p) + *s++ = *p++; + } else if (*p == '[') { + while (*p != '\0' && *p != ']') + *s++ = *p++; + } else if (islower(*p)) { + *s++ = '['; + *s++ = toupper(*p); + *s++ = *p++; + *s++ = ']'; + } else + *s++ = *p++; + if (s >= ybuf+ESIZE-5) + errexit("grep: argument too long\n", (char *)NULL); + } + *s = '\0'; + *argv = ybuf; + } + compile(*argv); + nfile = --argc; + if (argc<=0) { + if (lflag) + exit(1); + execute((char *)NULL); + } else while (--argc >= 0) { + argv++; + execute(*argv); + } + exit(retcode != 0 ? retcode : nsucc == 0); +} + +compile(sp) +register char *sp; +{ + register int c; + register char *ep; + char *cstart; + char *lastep; + int cclcnt; + char bracket[NBRA], *bracketp; + int closed; + char numbra; + char neg; + + ep = expbuf; + lastep = 0; + bracketp = bracket; + closed = numbra = 0; + if (*sp == '^') { + circf++; + sp++; + } + if (wflag) + *ep++ = CBRC; + for (;;) { + if (ep >= &expbuf[ESIZE]) + goto cerror; + if ((c = *sp++) != '*') + lastep = ep; + switch (c) { + + case '\0': + if (wflag) + *ep++ = CLET; + *ep++ = CEOF; + return; + + case '.': + *ep++ = CDOT; + continue; + + case '*': + if (lastep==0 || *lastep==CBRA || *lastep==CKET || + *lastep == CBRC || *lastep == CLET) + goto defchar; + *lastep |= STAR; + continue; + + case '$': + if (*sp != '\0') + goto defchar; + *ep++ = CDOL; + continue; + + case '[': + if(&ep[17] >= &expbuf[ESIZE]) + goto cerror; + *ep++ = CCL; + neg = 0; + if((c = *sp++) == '^') { + neg = 1; + c = *sp++; + } + cstart = sp; + do { + if (c=='\0') + goto cerror; + if (c=='-' && sp>cstart && *sp!=']') { + for (c = sp[-2]; c<*sp; c++) + ep[c>>3] |= bittab[c&07]; + sp++; + } + ep[c>>3] |= bittab[c&07]; + } while((c = *sp++) != ']'); + if(neg) { + for(cclcnt = 0; cclcnt < 16; cclcnt++) + ep[cclcnt] ^= -1; + ep[0] &= 0376; + } + + ep += 16; + + continue; + + case '\\': + if((c = *sp++) == 0) + goto cerror; + if(c == '<') { + *ep++ = CBRC; + continue; + } + if(c == '>') { + *ep++ = CLET; + continue; + } + if(c == '(') { + if(numbra >= NBRA) { + goto cerror; + } + *bracketp++ = numbra; + *ep++ = CBRA; + *ep++ = numbra++; + continue; + } + if(c == ')') { + if(bracketp <= bracket) { + goto cerror; + } + *ep++ = CKET; + *ep++ = *--bracketp; + closed++; + continue; + } + + if(c >= '1' && c <= '9') { + if((c -= '1') >= closed) + goto cerror; + *ep++ = CBACK; + *ep++ = c; + continue; + } + + defchar: + default: + *ep++ = CCHR; + *ep++ = c; + } + } + cerror: + errexit("grep: RE error\n", (char *)NULL); +} + +execute(file) +char *file; +{ + register char *p1, *p2; + register int c; + + if (file) { + if (freopen(file, "r", stdin) == NULL) { + perror(file); + retcode = 2; + } + } + lnum = 0; + tln = 0; + for (;;) { + lnum++; + p1 = linebuf; + while ((c = getchar()) != '\n') { + if (c == EOF) { + if (cflag) { + if (nfile>1) + printf("%s:", file); + printf("%D\n", tln); + fflush(stdout); + } + return; + } + *p1++ = c; + if (p1 >= &linebuf[LBSIZE-1]) + break; + } + *p1++ = '\0'; + p1 = linebuf; + p2 = expbuf; + if (circf) { + if (advance(p1, p2)) + goto found; + goto nfound; + } + /* fast check for first character */ + if (*p2==CCHR) { + c = p2[1]; + do { + if (*p1!=c) + continue; + if (advance(p1, p2)) + goto found; + } while (*p1++); + goto nfound; + } + /* regular algorithm */ + do { + if (advance(p1, p2)) + goto found; + } while (*p1++); + nfound: + if (vflag) + succeed(file); + continue; + found: + if (vflag==0) + succeed(file); + } +} + +advance(lp, ep) +register char *lp, *ep; +{ + register char *curlp; + char c; + char *bbeg; + int ct; + + for (;;) switch (*ep++) { + + case CCHR: + if (*ep++ == *lp++) + continue; + return(0); + + case CDOT: + if (*lp++) + continue; + return(0); + + case CDOL: + if (*lp==0) + continue; + return(0); + + case CEOF: + return(1); + + case CCL: + c = *lp++ & 0177; + if(ep[c>>3] & bittab[c & 07]) { + ep += 16; + continue; + } + return(0); + case CBRA: + braslist[*ep++] = lp; + continue; + + case CKET: + braelist[*ep++] = lp; + continue; + + case CBACK: + bbeg = braslist[*ep]; + if (braelist[*ep]==0) + return(0); + ct = braelist[*ep++] - bbeg; + if(ecmp(bbeg, lp, ct)) { + lp += ct; + continue; + } + return(0); + + case CBACK|STAR: + bbeg = braslist[*ep]; + if (braelist[*ep]==0) + return(0); + ct = braelist[*ep++] - bbeg; + curlp = lp; + while(ecmp(bbeg, lp, ct)) + lp += ct; + while(lp >= curlp) { + if(advance(lp, ep)) return(1); + lp -= ct; + } + return(0); + + + case CDOT|STAR: + curlp = lp; + while (*lp++); + goto star; + + case CCHR|STAR: + curlp = lp; + while (*lp++ == *ep); + ep++; + goto star; + + case CCL|STAR: + curlp = lp; + do { + c = *lp++ & 0177; + } while(ep[c>>3] & bittab[c & 07]); + ep += 16; + goto star; + + star: + if(--lp == curlp) { + continue; + } + + if(*ep == CCHR) { + c = ep[1]; + do { + if(*lp != c) + continue; + if(advance(lp, ep)) + return(1); + } while(lp-- > curlp); + return(0); + } + + do { + if (advance(lp, ep)) + return(1); + } while (lp-- > curlp); + return(0); + + case CBRC: + if (lp == expbuf) + continue; +#define uletter(c) (isalpha(c) || (c) == '_') + if (uletter(*lp) || isdigit(*lp)) + if (!uletter(lp[-1]) && !isdigit(lp[-1])) + continue; + return (0); + + case CLET: + if (!uletter(*lp) && !isdigit(*lp)) + continue; + return (0); + + default: + errexit("grep RE botch\n", (char *)NULL); + } +} + +succeed(f) +char *f; +{ + nsucc = 1; + if (sflag) + return; + if (cflag) { + tln++; + return; + } + if (lflag) { + printf("%s\n", f); + fflush(stdout); + fseek(stdin, 0l, 2); + return; + } + if (nfile > 1 && hflag) + printf("%s:", f); + if (bflag) + printf("%u:", blkno); + if (nflag) + printf("%ld:", lnum); + printf("%s\n", linebuf); + fflush(stdout); +} + +ecmp(a, b, count) +char *a, *b; +{ + register int cc = count; + while(cc--) + if(*a++ != *b++) return(0); + return(1); +} + +errexit(s, f) +char *s, *f; +{ + fprintf(stderr, s, f); + exit(2); +} diff --git a/tests/simple/jack_tests/k1.c b/tests/simple/jack_tests/k1.c new file mode 100644 index 000000000..1151f989b --- /dev/null +++ b/tests/simple/jack_tests/k1.c @@ -0,0 +1,43 @@ +/* + * Kernel 1 Hydro + * + * Translated from Fortran by Sanjay Jinturkar + * 6/28/92 + */ +#define LOOP 50000 + +#ifndef TIMES +#define TIMES 100 +#endif + +main() +{ + double x[LOOP], y[LOOP], zx[LOOP+23]; + int i; + + for (i = 0; i < LOOP; i++) + x[i] = y[i] = zx[i] = 3.0; + + for (i = 0; i < TIMES; i++) + loop (x, y, zx, LOOP); + + printf("contents\n"); + for(i = 0;i<LOOP;i++) + { + printf("x: %lf\ty: %lf\tzx: %lf\n",x[i],y[i],zx[i]); + } +} + +loop(x, y, zx, n) +double x[], y[], zx[]; +int n; +{ + int k; + double q = 12.0; + double r = 5.2; + double t = 13.4; + + for (k = 0; k < n; k++) + x[k] = q + y[k] * (r * zx[k + 10] + t * zx[k + 11]); +} + diff --git a/tests/simple/jack_tests/od.c b/tests/simple/jack_tests/od.c new file mode 100644 index 000000000..d78c71979 --- /dev/null +++ b/tests/simple/jack_tests/od.c @@ -0,0 +1,893 @@ +static char *sccsid = "@(#)od.c 5.11 (Berkeley) 4/29/83"; +/* + * od -- octal, hex, decimal, character dump of data in a file. + * + * usage: od [-abBcdDefFhHiIlLopPs[n]vw[n]xX] [file] [[+]offset[.][b] [label]] + * + * where the option flags have the following meaning: + * character object radix signed? + * a byte (10) (n.a.) ASCII named byte stream + * b byte 8 no byte octal + * c byte (8) (no) character with octal non-graphic bytes + * d short 10 no + * D long 10 no + * e,F double (10) double precision floating pt. + * f float (10) single precision floating pt. + * h,x short 16 no + * H,X long 16 no + * i short 10 yes + * I,l,L long 10 yes + * o,B short 8 no (default conversion) + * O long 8 no + * s[n] string (8) ASCII graphic strings + * + * p indicate EVEN parity on 'a' conversion + * P indicate ODD parity on 'a' conversion + * v show all data - don't skip like lines. + * w[n] bytes per display line + * + * More than one format character may be given. + * If {file} is not specified, standard input is read. + * If {file} is not specified, then {offset} must start with '+'. + * {Offset} may be HEX (0xnnn), OCTAL (0nn), or decimal (nnn.). + * The default is octal. The same radix will be used to display the address. + */ + +#include <stdio.h> + +#define DBUF_SIZE BUFSIZ +#define BIG_DBUF 32 +#define NO 0 +#define YES 1 +#define EVEN -1 +#define ODD 1 +#define UNSIGNED 0 +#define SIGNED 1 +#define PADDR 1 +#define MIN_SLEN 3 + +int a_put(); +int b_put(); +int c_put(); +int s_put(); +int us_put(); +int l_put(); +int f_put(); +int d_put(); +int st_put(); + +struct dfmt { + int df_field; /* external field required for object */ + int df_size; /* size (bytes) of object */ + int df_radix; /* conversion radix */ + int df_signed; /* signed? flag */ + int df_paddr; /* "put address on each line?" flag */ + int (*df_put)(); /* function to output object */ + char *df_fmt; /* output string format */ +} *conv_vec[32]; /* vector of conversions to be done */ + +struct dfmt ascii = { 3, sizeof (char), 10, 0, PADDR, a_put, 0}; +struct dfmt byte = { 3, sizeof (char), 8, UNSIGNED, PADDR, b_put, 0}; +struct dfmt cchar = { 3, sizeof (char), 8, UNSIGNED, PADDR, c_put, 0}; +struct dfmt u_s_oct = { 6, sizeof (short), 8, UNSIGNED, PADDR, us_put, 0}; +struct dfmt u_s_dec = { 5, sizeof (short), 10, UNSIGNED, PADDR, us_put, 0}; +struct dfmt u_s_hex = { 4, sizeof (short), 16, UNSIGNED, PADDR, us_put, 0}; +struct dfmt u_l_oct = {11, sizeof (long), 8, UNSIGNED, PADDR, l_put, 0}; +struct dfmt u_l_dec = {10, sizeof (long), 10, UNSIGNED, PADDR, l_put, 0}; +struct dfmt u_l_hex = { 8, sizeof (long), 16, UNSIGNED, PADDR, l_put, 0}; +struct dfmt s_s_dec = { 6, sizeof (short), 10, SIGNED, PADDR, s_put, 0}; +struct dfmt s_l_dec = {11, sizeof (long), 10, SIGNED, PADDR, l_put, 0}; +struct dfmt flt = {14, sizeof (float), 10, SIGNED, PADDR, f_put, 0}; +struct dfmt dble = {21, sizeof (double), 10, SIGNED, PADDR, d_put, 0}; +struct dfmt string = { 0, 0, 8, 0, NO, st_put, 0}; + + +char usage[] ="usage: od [-abcdfhilopswvx] [file] [[+]offset[.][b] [label]]"; +char dbuf[DBUF_SIZE]; +char lastdbuf[DBUF_SIZE]; +int addr_base = 8; /* default address base is OCTAL */ +long addr = 0L; /* current file offset */ +long label = -1L; /* current label; -1 is "off" */ +int dbuf_size = 16; /* file bytes / display line */ +int _parity = NO; /* show parity on ascii bytes */ +char fmt[] = " %s"; /* 12 blanks */ +char *icvt(); +char *scvt(); +char *underline(); +long get_addr(); + + +/* + * special form of _ctyp + */ + +#define A 01 +#define G 02 +#define D 04 +#define P 010 +#define X 020 +#define isdigit(c) (_ctyp[c] & D) +#define isascii(c) (_ctyp[c] & A) +#define isgraphic(c) (_ctyp[c] & G) +#define isprint(c) (_ctyp[c] & P) +#define ishex(c) (_ctyp[c] & (X|D)) + +char _ctyp[256] = { +/* 000 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 010 */ A, A, A, 0, A, A, 0, 0, +/* 020 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 030 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 040 */ P|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, +/* 050 */ P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, +/* 060 */ P|G|D|A,P|G|D|A,P|G|D|A,P|G|D|A,P|G|D|A,P|G|D|A,P|G|D|A,P|G|D|A, +/* 070 */ P|G|D|A,P|G|D|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, +/* 100 */ P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, +/* 110 */ P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, +/* 120 */ P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, +/* 130 */ P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, +/* 140 */ P|G|A,X|P|G|A,X|P|G|A,X|P|G|A,X|P|G|A,X|P|G|A,X|P|G|A, P|G|A, +/* 150 */ P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, +/* 160 */ P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, +/* 170 */ P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, P|G|A, 0, +/* 200 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 210 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 220 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 230 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 240 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 250 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 260 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 270 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 300 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 310 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 320 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 330 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 340 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 350 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 360 */ 0, 0, 0, 0, 0, 0, 0, 0, +/* 370 */ 0, 0, 0, 0, 0, 0, 0, 0, +}; + +main(argc, argv) +int argc; +char **argv; +{ + register char *p; + register char *l; + register n, same; + struct dfmt *d; + struct dfmt **cv = conv_vec; + int showall = NO; + int field, llen, nelm; + int max_llen = 0; + + argv++; + argc--; + + if(argc > 0) + { + p = *argv; + if(*p == '-') + { + while(*++p != '\0') + { + switch(*p) + { + case 'a': + d = &ascii; + break; + case 'b': + d = &byte; + break; + case 'c': + d = &cchar; + break; + case 'd': + d = &u_s_dec; + break; + case 'D': + d = &u_l_dec; + break; + case 'e': + case 'F': + d = &dble; + break; + case 'f': + d = &flt; + break; + case 'h': + case 'x': + d = &u_s_hex; + break; + case 'H': + case 'X': + d = &u_l_hex; + break; + case 'i': + d = &s_s_dec; + break; + case 'I': + case 'l': + case 'L': + d = &s_l_dec; + break; + case 'o': + case 'B': + d = &u_s_oct; + break; + case 'O': + d = &u_l_oct; + break; + case 'p': + _parity = EVEN; + continue; + case 'P': + _parity = ODD; + continue; + case 's': + d = &string; + *(cv++) = d; + while (isdigit(p[1])) + d->df_size = (10 * d->df_size) + (*++p - '0'); + if (d->df_size <= 0) + d->df_size = MIN_SLEN; + showall = YES; + continue; + case 'w': + dbuf_size = 0; + while (isdigit(p[1])) + dbuf_size = (10 * dbuf_size) + (*++p - '0'); + if (dbuf_size == 0) + dbuf_size = BIG_DBUF; + continue; + case 'v': + showall = YES; + continue; + default: + printf("od: bad flag -%c\n", *p); + puts(usage); + exit(1); + } + *(cv++) = d; + } + argc--; + argv++; + } + } + + /* + * if nothing spec'd, setup default conversion. + */ + if(cv == conv_vec) + *(cv++) = &u_s_oct; + + *cv = (struct dfmt *)0; + + /* + * calculate display parameters + */ + for (cv = conv_vec; d = *cv; cv++) + { + nelm = (dbuf_size + d->df_size - 1) / d->df_size; + llen = nelm * (d->df_field + 1); + if (llen > max_llen) + max_llen = llen; + } + + /* + * setup df_fmt to point to uniform output fields. + */ + for (cv = conv_vec; d = *cv; cv++) + { + if (d->df_field) /* only if external field is known */ + { + nelm = (dbuf_size + d->df_size - 1) / d->df_size; + field = max_llen / nelm; + d->df_fmt = fmt + 12 - (field - d->df_field); + } + } + + /* + * input file specified ? + */ + if(argc > 0 && **argv != '+') + { + if (freopen(*argv, "r", stdin) == NULL) + { + perror(*argv); + exit(1); + } + argv++; + argc--; + } + + /* + * check for possible offset [label] + */ + if (argc > 0) + { + addr = get_addr(*argv); + offset(addr); + argv++; + argc--; + + if (argc > 0) + label = get_addr(*argv); + } + + /* + * main dump loop + */ + same = -1; + while ((n = fread(dbuf, 1, dbuf_size, stdin)) > 0) + { + if (same>=0 && bufncmp(dbuf, lastdbuf, dbuf_size) == 0 && !showall) + { + if (same==0) + { + printf("*\n"); + same = 1; + } + } + else + { + line(n); + same = 0; + p = dbuf; + l = lastdbuf; + for (nelm = 0; nelm < dbuf_size; nelm++) + { + *l++ = *p; + *p++ = '\0'; + } + } + addr += n; + if (label >= 0) + label += n; + } + + /* + * Some conversions require "flushing". + */ + n = 0; + for (cv = conv_vec; *cv; cv++) + { + if ((*cv)->df_paddr) + { + if (n++ == 0) + put_addr(addr, label, '\n'); + } + else + (*((*cv)->df_put))(0, *cv); + } +} + +put_addr(a, l, c) +long a; +long l; +char c; +{ + fputs(icvt(a, addr_base, UNSIGNED, 7), stdout); + if (l >= 0) + printf(" (%s)", icvt(l, addr_base, UNSIGNED, 7)); + putchar(c); +} + +line(n) +int n; +{ + register i, first; + register struct dfmt *c; + register struct dfmt **cv = conv_vec; + + first = YES; + while (c = *cv++) + { + if (c->df_paddr) + { + if (first) + { + put_addr(addr, label, ' '); + first = NO; + } + else + { + putchar('\t'); + if (label >= 0) + fputs("\t ", stdout); + } + } + i = 0; + while (i < n) + i += (*(c->df_put))(dbuf+i, c); + if (c->df_paddr) + putchar('\n'); + } +} + +s_put(n, d) +short *n; +struct dfmt *d; +{ + printf(d->df_fmt, icvt((long)*n, d->df_radix, d->df_signed, d->df_field)); + return(d->df_size); +} + +us_put(n, d) +unsigned short *n; +struct dfmt *d; +{ + printf(d->df_fmt, icvt((long)*n, d->df_radix, d->df_signed, d->df_field)); + return(d->df_size); +} + +l_put(n, d) +long *n; +struct dfmt *d; +{ + printf(d->df_fmt, icvt(*n, d->df_radix, d->df_signed, d->df_field)); + return(d->df_size); +} + +d_put(f, d) +double *f; +struct dfmt *d; +{ + char fbuf[24]; + struct l { long n[2]; }; + +#if vax + if ((((struct l *)f)->n[0] & 0xff00) == 0x8000) /* Vax illegal f.p. */ + sprintf(fbuf, " %08x %08x", + ((struct l *)f)->n[0], ((struct l *)f)->n[1]); + else +#endif + + sprintf(fbuf, "%21.14e", *f); + printf(d->df_fmt, fbuf); + return(d->df_size); +} + +f_put(f, d) +float *f; +struct dfmt *d; +{ + char fbuf[16]; + +#if vax + if ((*(long *)f & 0xff00) == 0x8000) /* Vax illegal f.p. form */ + sprintf(fbuf, " %08x", *(long *)f); + else +#endif + sprintf(fbuf, "%14.7e", *f); + printf(d->df_fmt, fbuf); + return(d->df_size); +} + + +char asc_name[34][4] = { +/* 000 */ "nul", "soh", "stx", "etx", "eot", "enq", "ack", "bel", +/* 010 */ " bs", " ht", " nl", " vt", " ff", " cr", " so", " si", +/* 020 */ "dle", "dc1", "dc2", "dc3", "dc4", "nak", "syn", "etb", +/* 030 */ "can", " em", "sub", "esc", " fs", " gs", " rs", " us", +/* 040 */ " sp", "del" +}; + +a_put(cc, d) +char *cc; +struct dfmt *d; +{ + int c = *cc; + register char *s = " "; + register pbit = parity((int)c & 0377); + + c &= 0177; + if (isgraphic(c)) + { + s[2] = c; + if (pbit == _parity) + printf(d->df_fmt, underline(s)); + else + printf(d->df_fmt, s); + } + else + { + if (c == 0177) + c = ' ' + 1; + if (pbit == _parity) + printf(d->df_fmt, underline(asc_name[c])); + else + printf(d->df_fmt, asc_name[c]); + } + return(1); +} + +parity(word) +int word; +{ + register int p = 0; + register int w = word; + + if (w) + do + { + p ^= 1; + } while(w &= (~(-w))); + return (p? ODD:EVEN); +} + +char * +underline(s) +char *s; +{ + static char ulbuf[16]; + register char *u = ulbuf; + + while (*s) + { + if (*s != ' ') + { + *u++ = '_'; + *u++ = '\b'; + } + *u++ = *s++; + } + *u = '\0'; + return(ulbuf); +} + +b_put(b, d) +char *b; +struct dfmt *d; +{ + printf(d->df_fmt, icvt((long)*b & 0377, d->df_radix, d->df_signed, d->df_field)); + return(1); +} + +c_put(cc, d) +char *cc; +struct dfmt *d; +{ + register char *s; + register int n; + register int c = *cc & 0377; + + s = scvt(c, d); + for (n = d->df_field - strlen(s); n > 0; n--) + putchar(' '); + printf(d->df_fmt, s); + return(1); +} + +char *scvt(c, d) +int c; +struct dfmt *d; +{ + static char s[2]; + + switch(c) + { + case '\0': + return("\\0"); + + case '\b': + return("\\b"); + + case '\f': + return("\\f"); + + case '\n': + return("\\n"); + + case '\r': + return("\\r"); + + case '\t': + return("\\t"); + + default: + if (isprint(c)) + { + s[0] = c; + return(s); + } + return(icvt((long)c, d->df_radix, d->df_signed, d->df_field)); + } +} + +/* + * Look for strings. + * A string contains bytes > 037 && < 177, and ends with a null. + * The minimum length is given in the dfmt structure. + */ + +#define CNULL '\0' +#define S_EMPTY 0 +#define S_FILL 1 +#define S_CONT 2 +#define SBUFSIZE 1024 + +static char str_buf[SBUFSIZE]; +static int str_mode = S_EMPTY; +static char *str_ptr; +static long str_addr; +static long str_label; + +st_put(cc, d) +char *cc; +struct dfmt *d; +{ + register int c; + + if (cc == 0) + { + pr_sbuf(d, YES); + return(1); + } + + c = (*cc & 0377); + + if (str_mode & S_FILL) + { + if (isascii(c)) + put_sbuf(c, d); + else + { + *str_ptr = CNULL; + if (c == NULL) + pr_sbuf(d, YES); + str_mode = S_EMPTY; + } + } + else if (isascii(c)) + { + str_mode = S_FILL; + str_addr = addr + (cc - dbuf); /* ugly */ + if ((str_label = label) >= 0) + str_label += (cc - dbuf); /* '' */ + str_ptr = str_buf; + put_sbuf(c, d); + } + + return(1); +} + +put_sbuf(c, d) +int c; +struct dfmt *d; +{ + *str_ptr++ = c; + if (str_ptr >= (str_buf + SBUFSIZE)) + { + pr_sbuf(d, NO); + str_ptr = str_buf; + str_mode |= S_CONT; + } +} + +pr_sbuf(d, end) +struct dfmt *d; +int end; +{ + register char *p = str_buf; + + if (str_mode == S_EMPTY + || (!(str_mode & S_CONT) && (str_ptr - str_buf) < d->df_size)) + return; + + if (!(str_mode & S_CONT)) + put_addr(str_addr, str_label, ' '); + + while (p < str_ptr) + fputs(scvt(*p++, d), stdout); + + if (end) + putchar('\n'); +} + +/* + * integer to ascii conversion + * + * This code has been rearranged to produce optimized runtime code. + */ + +#define MAXINTLENGTH 32 +static char _digit[] = "0123456789abcdef"; +static char _icv_buf[MAXINTLENGTH+1]; +static long _mask = 0x7fffffff; + +char * +icvt (value, radix, psigned, ndigits) +long value; +int radix; +int psigned; +int ndigits; +{ + register long val = value; + register long rad = radix; + register char *b = &_icv_buf[MAXINTLENGTH]; + register char *d = _digit; + register long tmp1; + register long tmp2; + long rem; + long kludge; + int sign; + + if (val == 0) + { + *--b = '0'; + sign = 0; + goto done; /*return(b);*/ + } + + if (psigned && (sign = (val < 0))) /* signed conversion */ + { + /* + * It is necessary to do the first divide + * before the absolute value, for the case -2^31 + * + * This is actually what is being done... + * tmp1 = (int)(val % rad); + * val /= rad; + * val = -val + * *--b = d[-tmp1]; + */ + tmp1 = val / rad; + *--b = d[(tmp1 * rad) - val]; + val = -tmp1; + } + else /* unsigned conversion */ + { + sign = 0; + if (val < 0) + { /* ALL THIS IS TO SIMULATE UNSIGNED LONG MOD & DIV */ + kludge = _mask - (rad - 1); + val &= _mask; + /* + * This is really what's being done... + * rem = (kludge % rad) + (val % rad); + * val = (kludge / rad) + (val / rad) + (rem / rad) + 1; + * *--b = d[rem % rad]; + */ + tmp1 = kludge / rad; + tmp2 = val / rad; + rem = (kludge - (tmp1 * rad)) + (val - (tmp2 * rad)); + val = ++tmp1 + tmp2; + tmp1 = rem / rad; + val += tmp1; + *--b = d[rem - (tmp1 * rad)]; + } + } + + while (val) + { + /* + * This is really what's being done ... + * *--b = d[val % rad]; + * val /= rad; + */ + tmp1 = val / rad; + *--b = d[val - (tmp1 * rad)]; + val = tmp1; + } + +done: + if (sign) + *--b = '-'; + + tmp1 = ndigits - (&_icv_buf[MAXINTLENGTH] - b); + tmp2 = psigned? ' ':'0'; + while (tmp1 > 0) + { + *--b = tmp2; + tmp1--; + } + + return(b); +} + +long get_addr(s) +register char *s; +{ + register char *p; + register long a; + register int d; + + if (*s=='+') + s++; + if (*s=='x') + { + s++; + addr_base = 16; + } + else if (*s=='0' && s[1]=='x') + { + s += 2; + addr_base = 16; + } + else if (*s == '0') + addr_base = 8; + p = s; + while(*p) + { + if (*p++=='.') + addr_base = 10; + } + for (a=0; *s; s++) + { + d = *s; + if(isdigit(d)) + a = a*addr_base + d - '0'; + else if (ishex(d) && addr_base==16) + a = a*addr_base + d + 10 - 'a'; + else + break; + } + + if (*s == '.') + s++; + if(*s=='b') + a *= 512; + if(*s=='B') + a *= 1024; + + return(a); +} + +bufncmp(a, b, n) +char *a; +char *b; +int n; +{ + while (n--) + if (*a++ != *b++) + return(1); + return(0); +} + +offset(a) +long a; +{ + if (canseek(stdin)) + { + /* + * in case we're accessing a raw disk, + * we have to seek in multiples of a physical block. + */ + fseek(stdin, a & 0xfffffe00L, 0); + a &= 0x1ffL; + } + dumbseek(stdin, a); +} + +dumbseek(s, offset) +FILE *s; +long offset; +{ + char buf[BUFSIZ]; + int n; + int nr; + + while (offset > 0) + { + nr = (offset > BUFSIZ) ? BUFSIZ : (int)offset; + if ((n = fread(buf, 1, nr, s)) != nr) + { + fprintf(stderr, "EOF\n"); + exit(1); + } + offset -= n; + } +} + +#include <sys/types.h> +#include <sys/stat.h> + +canseek(f) +FILE *f; +{ + struct stat statb; + + return( (fstat(fileno(f),&statb)==0) && + (statb.st_nlink > 0) && /*!pipe*/ + (!isatty(fileno(f))) ); +} -- GitLab