[klee-dev] Reduce Test count of KLEE

Cristian Cadar c.cadar at imperial.ac.uk
Fri Jun 19 18:28:58 BST 2015


You might like to take a look at the option 
--only-output-states-covering-new

Cristian

On 19/06/15 05:15, Saksham Jain wrote:
> Sorry, Hit sent by mistake. Here is the continuation from the previous mail.
>
> /* Test is the function I am trying to test through KLEE */
> void test( int index_i, int data_i, struct my_struct *my_struct_p )
> {
>
>     switch(index_i) {
>
>         case 0: { <some code which depends on data_i and my_struct_obj
>         with some assertions>;break; }
>
>         case 1: { <some other code which depends on data_i and
>         my_struct_obj with some assertions>;break; }
>         ...
>         ...
>         ...
>
>         case 19: { <some other code which depends on data_i and
>         my_struct_obj with some assertions>;break; }
>
>         default:return
>         }
>
> }
> #define MAX_COUNT 10
> struct my_struct { <some definition> };
> int main {
>
>     int i;
>
>     int index[ MAX_COUNT ];
>
>     int data[ MAX_COUNT ];
>
>     klee_make_symbolic( &index,MAX_COUNT *sizeof( int ),"index");
>     klee_make_symbolic( &data, MAX_COUNT *sizeof( int ), "data");
>
>     klee_assume( index < 20 );
>     klee_assume( index >= 0 );
>     my_struct  my_struct_obj;
>     init( &my_struct_obj );  /* Does some initialization (with zeros)*/
>
>     for ( i=0 ;i<MAX_COUNT ;i++) {
>
>         test(index[i], data[i] ,&my_struct_obj);
>
>     }
>
> }
>
> The explosion is because: if MAX_COUNT is 1: Test cases created is
> roughly 20,
> if MAX_COUNT is 2: Test count is roughly 400 (multiplication factor of
> 20 with each increase of MAX_COUNT)
> and so on. For MAX COUNT 10, KLEE wouldn't be able to make test cases.
>
> Can someone point me in some direction to reduce the number of test
> cases being generated?
>
> I would ideally like KLEE to construct test cases covering every line in
> test function first. Or to terminate after the line coverage/branch
> coverage in test function is 100%.
>
> I can also deal with less than 100% coverage but I don't want test cases
> explosion.
> Are there any sim-args in KLEE for doing anything of this sort.?
>
> Regards,
> Saksham Jain
>
> On Fri, Jun 19, 2015 at 9:22 AM, Saksham Jain <sakjain92.work at gmail.com
> <mailto:sakjain92.work at gmail.com>> wrote:
>
>     Hi,
>
>     I am facing the problem of path explosion but I am facing it at
>     exponential rate. I am trying to test a function 'test' as shown below.
>
>     int main () {
>
>
>
>
>
>
>
> _______________________________________________
> 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