▽1
●
a-kuma3 ベストアンサー |
一般的な話ならいざ知らず、特定のツールに関して、いきなり、文章の断片だけ書いても、普通は分かりません。
以下、下記の README の文章だとして、回答を書きます。
https://code.google.com/p/js-symbolic-executor/source/browse/trunk/README
(args)というのはよくmain(string args[])などとあるコマンドより何かしらを引数として受け付けるアレの事でしょうか?
微妙に違います。
main メソッドには、filename から渡ります。
以下のようなコマンドを打つと、簡単なヘルプが出てくるはずです。
$ java -jar lib/js-symbolic-executor.jar
Usage:
java -jar <jarfile> filename entryFunction numTests [arg...]
filename is the file to instrument
entryFunction is the function at which symbolic execution will start
numTests---Symbolic execution will stop after generating (roughly) this many test inputs
[arg...] are the arguments that will be passed to entryFunction;they are strings, parsed by the JavaScript interpreter
[arg...] は、entryFunction への引数になるようです。
この場合引数として何を受け付けるのか、どこをどのように調べたらよいご教授下さい。
最初に呼ばれるのは、symbolicexecutor.SymbolicExecutor クラスです。
これは、js-symbolic-executor/build.xml を読むと、target name="jar" のタスクで、Manifest の Main-Class の指定をしているところから、分かります。
SymbolicExecutor には、JUnit の TestCase - SymbolicExecutorTest があります。
テストケースのソースを読めばわかりますが、三つのテストケースがあります。
それぞれのテストケースを見ると、引数に指定するものが、大体わかります。
例えば、testMaxNumImput の場合、コマンドとして起動する場合には、以下のような感じになるはずです。
ファイル名を見れば分かると思いますが、js-symbolic-executor のディレクトリで起動します。
$ java -jar lib/js-symbolic-executor.jar test/data/sample.js f 5 0 5
filename | test/data/sample.js |
---|---|
entryFunction | f |
numTests | 5 |
[arg...] | 0 5 |
entryFunction - f の引数が、何故 0 5 になるのかは、Javascript のファイル - sample.js を見れば分かります。
入口のところだけ抜粋。
... function adjust(input, goal) { while (1) { var tmp; ... } return input; } var f = adjust;
つまり、関数 adjust を input=0 、goal=5 で起動する、という指定になります。
ちなみに、js-symbolic-executor なるものが何をするためのものかは、分からずに書いていますので、念のため。