From: Masato T. <tar...@re...> - 2007-02-08 05:18:43
|
done. > Hi Masato, >=20 > > It seems there is no tag in subversion repository for this release. > > Do we have to make the tag for it? > Yes, please.=20 >=20 > And the development of crackerjack(CUI mode) is being in the progress n= ow,=20 > please tag for 0.8.8(=3Drevision 261). I add the function for btrax 1.0= .2 support at=20 > this version. >=20 > Regards, >=20 > - kyagi >=20 > Masato Taruishi wrote: > > Thanks for your great efforts. > >=20 > > It seems there is no tag in subversion repository for this release. > > Do we have to make the tag for it? > >=20 > > Best regards > >=20 > >> Hi, crackerjack developers, > >> > >> It is my pleasure to announce the release of 'crackerjack' CUI mode > >> version 0.8.7. > >> > >> Thank you for all of your questions and comments at the camp > >> in Beijing.=20 > >> > >> So, for the detail, please check the README in the archive file. > >> And check the SPEC about how to write the test program and the compa= re > >> program. > >> > >> The release can be found at: > >> http://sourceforge.net/projects/crackerjack > >> > >> You can see the documents and source code: > >> http://crackerjack.svn.sourceforge.net/viewvc/crackerjack/trunk/cr= ackerjack/ > >> > >> You can get all by Subversion. How to check out is: > >> $ svn co https://crackerjack.svn.sourceforge.net/svnroot/crackerja= ck/ > >> > >> If you have any questions or suggestions, please send them > >> to this mailing-list. > >> > >> Thanks. > >> -- > >> Kazuo YAGI > >> =E6=B7=BB=E4=BB=98=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB: =E5=B9=B3=E6= =96=87=E3=83=86=E3=82=AD=E3=82=B9=E3=83=88=E3=83=89=E3=82=AD=E3=83=A5=E3=83= =A1=E3=83=B3=E3=83=88 (TODO) > >> * Framework may hang when executing wrong test prgoram as follows. > >> - the test program which can't wait child process > >> - the test program which send pile of message to STDERR. > >> > >> * Framework code is too ugly. It will be refined. > >> > >> * Documents will be refined. > >> - README > >> - TODO > >> > >> ------------------------------------------------------- > >> Author: Kazuo Yagi <ky...@mi...> > >> created at: Thu Feb 8 05:59:55 JST 2007 > >> =E6=B7=BB=E4=BB=98=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB: =E5=B9=B3=E6= =96=87=E3=83=86=E3=82=AD=E3=82=B9=E3=83=88=E3=83=89=E3=82=AD=E3=83=A5=E3=83= =A1=E3=83=B3=E3=83=88 (SPEC) > >> * Framework Specification > >> > >> - Framework can execute the test programs collectively. > >> > >> - Framework can log the test programs STDOUT to the file 'tout.log= ', > >> and STDERR to the file 'terr.log' in the following directory. > >> > >> STDOUT =3D> 'results/KERNEL_VERSION/ID/SYSTEMCALL_NAME/tout.l= og'.=20 > >> STDERR =3D> 'results/KERNEL_VERSION/ID/SYSTEMCALL_NAME/terr.l= og'.=20 > >> > >> Now, Frameork use the time when the test program executed as ID. > >> =20 > >> - Framework can register the test program's log(=3D'tout.log')=20 > >> as expected result in the following directory.=20 > >> > >> expcted result =3D> 'expected/SYSTEMCALL_NAME/tout.log' > >> > >> So, it is a symbolic link to the previous test program's log. > >> > >> - Framework can compare the current test program's log(=3Dcurrent = result) > >> with the previous test program's log(=3Dexpected result). > >> > >> expcted result =3D> 'expected/SYSTEMCALL_NAME/tout.log' > >> ^ > >> | compare > >> v > >> current result =3D> 'results/KERNEL_VERSION/ID/SYSTEMCALL_NAM= E/tout.log'.=20 > >> > >> - Framework can list the test programs in the following directory. > >> > >> 'testcases/SYSTEMCALL_NAME'=20 > >> > >> - Framework can print the help message. > >> > >> - Framework can print the own version. > >> > >> > >> * Test Program Specification > >> > >> - The test program file must be executable. > >> > >> - The test program file name must be 'test' and store it in the > >> 'testcase/SYSTEM_CALLNAME/ directory. > >> > >> > >> * Compare Program Specification > >> > >> - The compare program file must be executable. > >> > >> - The compare program file name must be 'compare' and store it in = the > >> same directory of the test program. If you don't prepare the com= pare > >> program, Framwork use the bin/default-compare instead. > >> > >> - The compare program should send "OK" to STDOUT if compare progra= m judge OK > >> on comparing the current result with the expected result. > >> > >> - The compare program should send "NG" to STDOUT if compare progra= m judge NG > >> on comparing the current result with the expected result. > >> > >> - The compare program should send any message to STDERR. > >> > >> - See bin/default-compare informative. > >> > >> ------------------------------------------------------- > >> Author: Kazuo Yagi <ky...@mi...> > >> created at: Wed Feb 7 23:43:31 JST 2007 > >> =E6=B7=BB=E4=BB=98=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB: =E5=B9=B3=E6= =96=87=E3=83=86=E3=82=AD=E3=82=B9=E3=83=88=E3=83=89=E3=82=AD=E3=83=A5=E3=83= =A1=E3=83=B3=E3=83=88 (README) > >> * What's crackerjack > >> > >> Crackerjack is the project which aims to discover system calls > >> difference between some kernel versions. > >> For further information regarding this notice, see: > >> http://sourceforge.net/projects/crackerjack > >> > >> > >> * Features of crackerjack > >> > >> + Run both interactive and non-interactive > >> + Execute test programs collectively > >> + Compare test programs result between current and expected result > >> + Define systemcall behavior as expected results > >> + Defined compare program > >> > >> > >> * How to get crackerjack > >> > >> The latest source is always available at:=20 > >> > >> https://svn.sourceforge.net/svnroot/crackerjack/trunk > >> > >> You can get it by Subversion. How to check out is: > >> > >> svn co https://crackerjack.svn.sourceforge.net/svnroot/crackerjac= k/ > >> > >> > >> * Home-page > >> The URL of the crackerjack home-page is: > >> > >> http://sourceforge.net/projects/crackerjack > >> > >> > >> * Mailing list > >> > >> There is a mailing list to talk about crackerjack. > >> To subscribe this list, please follow the sourceforge announce. > >> > >> cra...@li... > >> cra...@li... > >> > >> > >> * How to compile > >> > >> What you need to do to compile test programs is just running make. > >> =20 > >> $ make > >> > >> > >> * How to use > >> > >> 1. Get the source from subversion repository. > >> > >> $ pwd > >> /tmp > >> $ svn co https://crackerjack.svn.sourceforge.net/svnroot/crack= erjack/ > >> A crackerjack/trunk > >> A crackerjack/trunk/crackerjack > >> (...snip...) > >> Checked out revision 241. > >> =20 > >> > >> 2. Become super-user and make the test programs. > >> > >> $ su - > >> Password: > >> # cd /tmp/crackerjack/trunk/crackerjack/ > >> # make > >> make -C testcases/getgroups// test > >> make[1]: Entering directory `/tmp/crackerjack/trunk/crackerjac= k/testcases/getgroups' > >> (...snip...) > >> =20 > >> > >> 3. Run crackerjack in interactive-way.=20 > >> > >> # ./crackerjack > >> crackerjack> > >> > >> > >> 4. Read help with 'h' command. > >> > >> crackerjack>h > >> number push test program to stack > >> c Compare test program result on stack > >> d Delete(pop) stack > >> e register test program result on stack as Expected res= ult > >> h help > >> l List the test programs > >> p Print stack > >> x eXecute test program on stack > >> crackerjack> > >> > >> > >> 5. List the test programs with 'l' command. > >> > >> crackerjack>l > >> 0000) access > >> 0001) adjtimex > >> (...snip...) > >> 0053) unlink > >> 0054) write > >> crackerjack> > >> > >> > >> 6. Push the test programs to stack with 'number' which is corresp= ondence to > >> the test program you want. You can look the contents of stack = with 'p' > >> command, and pop the test programs from stack with 'd' command= .=20 > >> > >> crackerjack>8 > >> 8 > >> crackerjack>10 > >> 8 10 > >> crackerjack>47 > >> 8 10 47 > >> crackerjack>55 > >> Out of range > >> crackerjack>p > >> 8 10 47 > >> crackerjack>8 > >> Already ordered > >> crackerjack>p > >> 8 10 47 > >> crackerjack>d > >> 8 10 > >> crackerjack>p > >> 8 10 > >> crackerjack>47 > >> 8 10 47 > >> crackerjack>48 > >> 8 10 47 48 > >> crackerjack>p > >> 8 10 47 48 > >> > >> > >> 7. Execute the test program on stack with 'x' command. > >> > >> crackerjack>x > >> Action SystemCallName Id > >> ------------------------------------------------------------ > >> X examples/hello_precision_world 20070207183731 > >> X examples/hello_world 20070207183731 > >> X syscall_A 20070207183731 > >> X syscall_C 20070207183731 > >> crackerjack> > >> > >> > >> 8. Register current result as expected result with 'e' command. > >> > >> crackerjack>e > >> Action SystemCallName Id > >> --------------------------------------------------------------= ------- > >> E examples/hello_precision_world 20070207183731 > >> E examples/hello_world 20070207183731 > >> E syscall_A 20070207183731 > >> E syscall_C 20070207183731 > >> crackerjack> > >> > >> > >> 9. Compare the current result to expected result. You registerd e= xpected > >> result just now, of course test programs result is same, So it= doesn't > >> occur regression). > >> > >> crackerjack>c > >> Action SystemCallName CompareProgram Judg= e > >> --------------------------------------------------------------= ------- > >> C examples/hello_precision_world DEF compa= tible > >> C examples/hello_world DEF compa= tible > >> C syscall_A DEF compa= tible > >> C syscall_C DEF compa= tible > >> crackerjack> > >> > >> //////////////////////////////////////////////////////////////= /////// > >> * NOTICE * 'Compare' column of tables means whether crackerjac= k use > >> the user-defined compare program (=3DOWN) or use default-compa= re program(=3DDEF). > >> You need to store the compare program correspondense to the te= st program=20 > >> in the same directory. If there's not, crackerjack use the bin= /defautl-compare > >> instead. > >> //////////////////////////////////////////////////////////////= /////// > >> > >> > >> 10. Quit the crackerjack with 'q' command.=20 > >> > >> crackerjack>q > >> # > >> > >> > >> 11. Run the same thing in non-interactive-way. > >> At first, execute the test programs(this thing is the equivale= nt of 7). =09 > >> crackerjack invoke non-interactive way with '-f' option. > >> This output table is the same except Id is change. > >> > >> # ./crackerjack -f .order > >> Action SystemCallName Id > >> ------------------------------------------------------------ > >> X examples/hello_precision_world 20070207213007 > >> X examples/hello_world 20070207213007 > >> X syscall_A 20070207213007 > >> X syscall_C 20070207213007 > >> # > >> > >> //////////////////////////////////////////////////////////////= /////// > >> * NOTICE *=20 > >> crackerjack memorize your order and write it down to the.order= -file > >> '.order' in interactive-way. So if you want to execute the sam= e=20 > >> test programs one more time, you can use this.order file. > >> > >> If you want to create.order-file by yourself, you can use '-l'= option: > >> # ./crackerjack -l > m.order > >> # ./crackerjack -l | sed -n '1,25p' > m.order > >> # ./crackrjack -f m.order > >> //////////////////////////////////////////////////////////////= /////// > >> > >> > >> 12. Secondly, Register the current result as expected result in no= n-interactive-way. > >> (this thing is the equivalent of 8). > >> > >> # ./crackerjack -e .current > >> Action SystemCallName Id > >> ------------------------------------------------------------ > >> E examples/hello_precision_world 20070207213007 > >> E examples/hello_world 20070207213007 > >> E syscall_A 20070207213007 > >> E syscall_C 20070207213007 > >> # > >> > >> //////////////////////////////////////////////////////////////= /////// > >> * NOTICE *=20 > >> crackerjack memorize the test program's latest result log, and= write it > >> down to the file '.current' in interactive-way. =20 > >> //////////////////////////////////////////////////////////////= /////// > >> > >> > >> 13. Thirdly, Compare the current result to expected result with '-= c' option > >> and '-f' option. (this thing is the equivalent of 9). > >> > >> # ./crackerjack -c .current > >> Action SystemCallName CompareProgram Judg= e > >> --------------------------------------------------------------= ------- > >> C examples/hello_precision_world DEF compa= tible > >> C examples/hello_world DEF compa= tible > >> C syscall_A DEF compa= tible > >> C syscall_C DEF regre= ssion occured > >> =3D> See log file: results/2.6.15-27-386/20070207221534/sysca= ll_C/cerr.log > >> # > >> > >> > >> 14. Use more conveniently, you can write shell script as follows. > >> > >> --------------------------------------------------------------= ------- > >> #!/bin/sh > >> =20 > >> ./crackerjack -l | sed -n '1,25p' > myconfig1 > >> ./crackerjack -l | grep "write" >> myconfig2 > >> myconfigs=3D"myconfig1 myconfig2" > >> for f in $myconfigs; do > >> ./crackerjack -f $f > >> ./crackerjack -e .current > >> ./crackerjack -c .current > >> done > >> --------------------------------------------------------------= ------- > >> > >> =20 > >> * Copying > >> > >> See the file COPYING. > >> > >> ------------------------------------------------------- > >> Author: Kazuo Yagi <ky...@mi...> > >> created at: Wed Feb 7 18:00:45 JST 2007 > >=20 >=20 |