Hi, Kirill.

First of all, it is not clear what type of inputs should be generated.
In the example below all integers will be generated, starting from 0 ... 
including 500. 
klee_assert function will trigger __assert_fail klee function, this possibly 
will terminate input generation process, possibly not, i am not very sure.

Anyway it is possible that you want something more meaningful, if input 500 
should be generated, or input 500 should not be generated.

In this case better to use klee_assume function:

 void klee_assume(int constraint) {
  
if (!constraint) klee_silent_exit(0);

}


{int a;
klee_make_symbolic(&a, sizeof(a), "a");
int i =0 ;
int n =1;
for (i =0; i < a;i++){

n++;
}
klee_assume(n==500); or klee_assume(n!=500);
Will generate a=500 or all a-s, except 500.

Urmas Repinski.

Date: Tue, 25 Mar 2014 09:33:26 +0000
From: [email protected]
To: [email protected]
Subject: [klee-dev] KLEE relationship between loop length and counter.

Hello Everyone,(Sorry for the previous email, it has been sent by mistake 
before I finished it!)


Could you please let me know if what I am doing cannot be achieved with KLEE 
and if it can, how can I do it?

1. Please consider my usage example below. The problem that I am observing is 
that KLEE does not sees relationship between loop length and the counter "n".
In my experiments (with different search strategies) KLEE always encountered 
assertion by a blind search, and usually after generating 500 test cases. 

{int a;
klee_make_symbolic(&a, sizeof(a), "a");
int i =0 ;
int n =1;
for (i =0; i < a;i++){

n++;
}
if (n == 500)
klee_assert(0);
return 0;
}
Is this is something that is fundamentally impossible in KLEE, or can be 
achieved by rewriting my example?


Thank you very much!

_______________________________________________
klee-dev mailing list
[email protected]
https://mailman.ic.ac.uk/mailman/listinfo/klee-dev                              
          
_______________________________________________
klee-dev mailing list
[email protected]
https://mailman.ic.ac.uk/mailman/listinfo/klee-dev

Reply via email to