[klee-dev] Want to replay ".ktest" files from a single text file
Andrew Santosa
asantosa1999 at gmail.com
Mon Jun 18 04:02:39 BST 2018
Hi Sanghu,
If I were you I would try to parallelize the replay runs using a Makefile.
For example, you can implement a Makefile that looks like this:
-----------------------------------------------------------------------------
KTEST_FILES=$(wildcard klee-last/*.ktest)
OUTPUT_FILES=$(KTEST_FILES:.ktest=.output)
all: ${OUTPUT_FILES}
.SUFFIXES: .ktest .output
.ktest.output:
KTEST_FILE=$< ./a.out > $@
-----------------------------------------------------------------------------
(Note that the last line should start with a tab character).
You can then execute:
make -j `nproc`
to execute the test cases in parallel.
Note that make will stop as soon as there is a replay
that returns non-zero value.
Best,
Andrew
On Sunday, 17 June 2018, 11:22:51 PM SGT, Sangharatna Godboley <sanghu1790 at gmail.com> wrote:
Hi Andrew,
Thanks for your response. I am using libkleeRuntest library. I am following the instructions provided in the following link to replay the test cases:
https://klee.github.io/tutorials/testing-function/
I have tried implementing the loop using a programming language that iterates over all of the ktest files. However, the issue is that the speed is still slow on 100K test replays. I am trying to find a way to natively run the 100k klee test cases on the LLVM IR. To increase the speed of test replays I am thinking to avoid opening and closing of test input files 100k times.
Is there any way to resolve this issue?
Thanks,
Sanghu
On Sat, Jun 16, 2018 at 10:30 AM, Andrew Santosa <asantosa1999 at gmail.com> wrote:
> Hi Sanghu,
>
> You don't seem to be using klee-replay here. Otherwise, instead of invoking a.out
> you would have invoked klee-replay, with a.out as its argument.
>
> Moreover, you can't just expect klee-replay to work on a single file containing all the
> ktest files by simple appending. I don't think this file will be in the right format for a
> ktest file. Instead, you should implement a loop using your programming language
> of choice that iterates over all of the ktest files and runs klee-replay on each.
>
> Best,
> Andrew
>
> On Thursday, 14 June 2018, 5:06:05 PM SGT, Sangharatna Godboley <sanghu1790 at gmail.com> wrote:
>
>
>
>
>
> Hi,
> I have a problem. For my experiment, KLEE generates larger test data for eg. > 100,000 "test000001.ktest" files. I am replaying these test input files using klee-replay tool with this command
>
> "KTEST_FILE=klee-out-0/test000 001.ktest ./a.out".
>
> Here is the problems, I need to open and close ".ktest" files for "a.out" 100,000 times, which is time consuming. I want to optimize the time. I want to avoid opening and closing of ".ktest" files for these many times. Is there any way to solve this problem? I am thinking to redirect all these test input files into one "sample.txt" file using the following command:
>
> "ktest-tool klee-out-0/test******.ktest > sample.txt"
>
> But, I am now stuck to process this sample.txt with ./a.out by using klee-replay tool.
> Can anyone help me for this problem?
>
> Thanks
> Sanghu
>
> ______________________________ _________________
> klee-dev mailing list
> klee-dev at imperial.ac.uk
> https://mailman.ic.ac.uk/ mailman/listinfo/klee-dev
>
--
More information about the klee-dev
mailing list