Commit e46a79dc authored by Erwan Jahier's avatar Erwan Jahier
Browse files

Some improvements in lurettetop --direct:

 - fix the coverage stuff that was not working
 - add an 'info' command that display a sum-up of the test parameters
 - add support to compile Lustre V4 programs

Moreover, we now use the direct mdoe in the non-reg tests !!
parent 661cc7ad
......@@ -8,9 +8,18 @@ LURETTETOP=$(LTOP) --precision 2 --sut heater_control.lus \
--step-mode Inside --local-var --no-sim2chro --seed 3 \
--do-not-show-step
LURETTETOP_DIRECT=$(LTOP) --direct \
-rp "sut:v4:heater_control.lus:heater_control" \
-rp "oracle:v4:heater_control.lus:not_a_sauna" \
-rp "env:lutin:env.lut:main" \
--test-length 100 --thick-draw 1 \
--draw-inside 0 --draw-edges 0 --draw-vertices 0 --draw-all-vertices \
--step-mode Inside --local-var --no-sim2chro --seed 3 \
--do-not-show-step
#
test:
test_old:
rm -f test.rif0 .lurette_rc
$(LURETTETOP) -go --output test.rif0 env.lut && \
grep -v "lurette chronogram" test.rif0 | \
......@@ -18,6 +27,14 @@ test:
rm -f test.res && diff -B -u -i test.rif.exp test.rif > test.res
[ ! -s test.res ] && make clean
test:
rm -f test.rif0 .lurette_rc
$(LURETTETOP_DIRECT) -go --output test.rif0 && \
grep -v "lurette chronogram" test.rif0 | \
grep -v "The execution lasted"| sed -e "s/^M//" > test.rif &&\
rm -f test.res && diff -B -u -i test.rif.exp test.rif > test.res
[ ! -s test.res ] && make clean
sut:
call-via-socket -addr 127.0.0.1 -port 2000 -server ./not_a_sauna.sh
......
......@@ -59,10 +59,13 @@ tel
-----------------------------------------------------------------------
-----------------------------------------------------------------------
node not_a_sauna(T, T1, T2, T3 : real; Heat_on: bool) returns (ok:bool);
node not_a_sauna(T, T1, T2, T3 : real; Heat_on: bool) returns (ok, c1, c2, c3:bool);
let
ok = true -> pre T < TMAX + 1.0 ;
c1 = T> TMAX;
c2 = T= TMAX;
c3 = T< TMAX;
tel
node not_a_sauna2(T, T1, T2, T3 : real; Heat_on: bool) returns (ok:bool);
......
# seed = 3
#@inputs
"T":real
"T1":real
"T2":real
"T3":real
@#
#@outputs
"Heat_on":bool
@#
#@locals
"_px010":real
@#
#oracle_outputs T
# This is lurettop Version 1.54 (661cc7a)
# The random engine was initialized with the seed 3
#inputs "T":real "T1":real "T2":real "T3":real
#outputs "Heat_on":bool
#step 0
8.51 8.54 8.33 8.42 #outs t
#step 1
8.90 8.41 8.90 9.40 #outs T
#locs 6845.23 1
#oracle_outputs T
9.24 9.14 9.26 9.28 #outs f
#step 2
8.36 8.30 8.57 8.52 #outs T
#locs 5048.51 2
#oracle_outputs T
9.08 9.46 8.63 8.96 #outs f
#step 3
8.25 8.54 8.53 8.73 #outs T
#locs 8.36 0
#oracle_outputs T
8.64 8.49 8.38 9.10 #outs f
#step 4
8.12 8.58 8.58 8.43 #outs T
#locs 8.25 0
#oracle_outputs T
8.45 8.46 7.98 8.02 #outs f
#step 5
7.98 8.39 7.57 8.06 #outs T
#locs 8.12 0
#oracle_outputs T
8.39 8.61 8.11 8.59 #outs f
#step 6
7.97 7.87 7.52 8.05 #outs T
#locs 7.98 0
#oracle_outputs T
8.32 8.01 8.03 8.04 #outs f
#step 7
7.89 7.41 7.62 8.21 #outs T
#locs 7.97 0
#oracle_outputs T
7.51 8.01 7.64 7.31 #outs f
#step 8
7.88 7.40 7.60 7.93 #outs T
#locs 7.89 0
#oracle_outputs T
6.84 7.05 6.67 6.38 #outs f
#step 9
7.79 8.22 8.01 7.65 #outs T
#locs 7.88 0
#oracle_outputs T
5.88 5.54 5.43 5.87 #outs t
#step 10
7.63 7.75 8.09 7.26 #outs T
#locs 7.79 0
#oracle_outputs T
5.88 6.22 6.06 6.36 #outs t
#step 11
7.61 7.13 7.12 8.11 #outs T
#locs 7.63 0
#oracle_outputs T
5.88 5.78 5.53 6.37 #outs t
#step 12
7.43 7.73 7.93 7.33 #outs T
#locs 7.61 0
#oracle_outputs T
6.20 6.54 5.71 5.86 #outs t
#step 13
7.40 7.31 7.54 7.41 #outs T
#locs 7.43 0
#oracle_outputs T
6.89 7.04 7.39 7.31 #outs t
#step 14
7.38 6.94 7.82 7.85 #outs T
#locs 7.40 0
#oracle_outputs T
7.69 7.19 7.29 8.03 #outs t
#step 15
7.32 7.08 7.02 7.64 #outs T
#locs 7.38 0
#oracle_outputs T
7.86 7.82 8.07 7.57 #outs t
#step 16
7.13 6.94 6.82 6.82 #outs T
#locs 7.32 0
#oracle_outputs T
7.86 7.99 8.32 8.13 #outs t
#step 17
6.94 6.45 6.57 7.44 #outs T
#locs 7.13 0
#oracle_outputs T
8.39 8.61 8.66 8.64 #outs t
#step 18
6.93 6.44 6.87 7.01 #outs T
#locs 6.94 0
#oracle_outputs T
9.14 9.26 9.09 9.06 #outs f
#step 19
6.78 7.16 7.27 7.28 #outs T
#locs 6.93 0
#oracle_outputs T
8.34 8.42 8.08 7.93 #outs f
#step 20
6.60 7.06 6.64 6.99 #outs T
#locs 6.78 0
#oracle_outputs T
8.11 8.02 7.74 8.25 #outs f
#step 21
6.56 6.90 6.71 6.89 #outs T
#locs 6.60 0
#oracle_outputs T
7.61 7.60 7.98 7.85 #outs f
#step 22
6.42 6.53 6.76 6.53 #outs T
#locs 6.56 0
#oracle_outputs T
7.34 7.63 7.38 6.95 #outs f
#step 23
6.40 6.20 6.31 6.84 #outs T
#locs 6.42 0
#oracle_outputs T
6.55 6.42 6.92 6.56 #outs f
#step 24
6.36 6.60 6.07 6.81 #outs T
#locs 6.40 0
#oracle_outputs T
6.50 6.45 6.59 6.79 #outs f
#step 25
6.19 6.45 5.95 6.20 #outs T
#locs 6.36 0
#oracle_outputs T
5.55 5.79 5.17 5.40 #outs t
#step 26
6.18 6.42 6.14 5.94 #outs T
#locs 6.19 0
#oracle_outputs T
5.55 5.44 6.03 5.35 #outs t
#step 27
6.11 6.23 6.23 5.92 #outs T
#locs 6.18 0
#oracle_outputs T
5.55 5.21 5.88 5.16 #outs t
#step 28
5.95 5.60 5.80 5.58 #outs T
#locs 6.11 0
#oracle_outputs T
5.78 5.67 5.64 5.48 #outs t
#step 29
6.06 6.25 5.75 6.12 #outs T
#locs 5.95 0
#oracle_outputs T
5.78 5.58 5.90 5.39 #outs t
#step 30
6.07 6.08 6.46 6.12 #outs T
#locs 6.06 0
#oracle_outputs T
5.78 6.12 5.50 5.61 #outs t
#step 31
6.15 5.70 6.04 6.34 #outs T
#locs 6.07 0
#oracle_outputs T
5.80 5.78 5.44 5.83 #outs t
#step 32
6.28 6.40 6.40 6.52 #outs T
#locs 6.15 0
#oracle_outputs T
6.78 6.78 7.05 7.07 #outs t
#step 33
6.43 5.97 6.23 6.23 #outs T
#locs 6.28 0
#oracle_outputs T
7.31 7.01 7.33 7.05 #outs t
#step 34
6.55 6.05 6.71 6.20 #outs T
#locs 6.43 0
#oracle_outputs T
8.27 7.79 7.77 7.79 #outs t
#step 35
6.59 6.81 6.17 7.06 #outs T
#locs 6.55 0
#oracle_outputs T
8.27 8.66 8.01 8.43 #outs t
#step 36
6.70 7.17 7.17 7.20 #outs T
#locs 6.59 0
#oracle_outputs T
8.77 8.27 9.01 9.11 #outs f
#step 37
6.74 6.72 6.76 6.72 #outs T
#locs 6.70 0
#oracle_outputs T
8.12 8.58 8.01 8.36 #outs f
#step 38
6.80 6.80 6.31 6.81 #outs T
#locs 6.74 0
#oracle_outputs T
7.26 7.67 7.34 6.83 #outs f
#step 39
6.96 6.95 6.92 6.97 #outs T
#locs 6.80 0
#oracle_outputs T
6.40 6.31 6.23 6.09 #outs f
#step 40
7.00 6.92 6.81 6.74 #outs T
#locs 6.96 0
#oracle_outputs T
5.83 6.17 5.78 5.70 #outs t
#step 41
7.05 7.36 6.92 7.48 #outs T
#locs 7.00 0
#oracle_outputs T
5.83 5.43 5.95 6.04 #outs t
#step 42
7.12 7.61 7.37 7.27 #outs T
#locs 7.05 0
#oracle_outputs T
5.83 5.49 5.71 5.57 #outs t
#step 43
7.25 7.42 7.53 6.90 #outs T
#locs 7.12 0
#oracle_outputs T
6.82 6.89 6.44 6.33 #outs t
#step 44
7.42 7.58 7.07 7.05 #outs T
#locs 7.25 0
#oracle_outputs T
6.82 6.88 7.13 6.62 #outs t
#step 45
7.45 7.80 7.92 7.45 #outs T
#locs 7.42 0
#oracle_outputs T
6.82 6.76 7.25 7.15 #outs t
#step 46
7.48 7.92 7.89 7.16 #outs T
#locs 7.45 0
#oracle_outputs T
6.82 6.54 6.80 7.22 #outs t
#step 47
7.67 7.98 7.83 7.84 #outs T
#locs 7.48 0
#oracle_outputs T
6.87 6.46 6.44 6.67 #outs t
#step 48
7.76 8.26 7.55 7.62 #outs T
#locs 7.67 0
#oracle_outputs T
6.87 7.08 7.13 6.73 #outs t
#step 49
7.89 7.71 8.27 8.09 #outs T
#locs 7.76 0
#oracle_outputs T
6.87 7.31 6.54 6.89 #outs t
#step 50
7.93 8.21 7.69 7.94 #outs T
#locs 7.89 0
#oracle_outputs T
6.87 7.24 7.20 6.50 #outs t
#step 51
7.94 7.95 7.94 8.44 #outs T
#locs 7.93 0
#oracle_outputs T
7.09 6.59 7.54 6.70 #outs t
#step 52
8.12 8.02 8.53 8.39 #outs T
#locs 7.94 0
#oracle_outputs T
7.09 6.88 6.85 7.03 #outs t
#step 53
8.30 7.84 8.78 8.27 #outs T
#locs 8.12 0
#oracle_outputs T
7.68 8.04 7.92 8.02 #outs t
#step 54
8.34 8.67 8.01 8.09 #outs T
#locs 8.30 0
#oracle_outputs T
7.82 8.06 7.91 7.47 #outs t
#step 55
8.42 8.83 7.97 8.62 #outs T
#locs 8.34 0
#oracle_outputs T
7.82 7.61 7.96 8.29 #outs t
#step 56
8.47 8.40 8.10 8.40 #outs T
#locs 8.42 0
#oracle_outputs T
7.82 7.71 8.22 7.63 #outs t
#step 57
8.61 8.56 8.48 8.23 #outs T
#locs 8.47 0
#oracle_outputs T
8.15 7.87 8.15 7.99 #outs t
#step 58
8.78 8.45 8.94 8.63 #outs T
#locs 8.61 0
#oracle_outputs T
8.85 8.56 8.72 9.15 #outs t
#step 59
8.88 9.37 9.35 8.43 #outs F
#locs 8.78 0
#oracle_outputs T
8.85 8.78 9.10 8.64 #outs t
#step 60
9.01 9.20 8.53 8.82 #outs F
#locs 8.88 0
#oracle_outputs T
9.63 9.79 9.56 9.29 #outs f
#step 61
8.99 9.49 8.95 9.40 #outs F
#locs 9.01 0
#oracle_outputs T
8.97 9.33 8.66 9.19 #outs f
#step 62
8.81 8.89 8.75 9.27 #outs F
#locs 8.99 0
#oracle_outputs T
8.87 8.55 8.85 9.21 #outs f
#step 63
8.67 9.14 8.36 8.22 #outs F
#locs 8.81 0
#oracle_outputs T
8.50 8.09 8.22 8.20 #outs f
#step 64
8.55 8.31 8.61 8.78 #outs F
#locs 8.67 0
#oracle_outputs T
7.55 8.02 8.03 8.03 #outs f
#step 65
8.48 8.72 8.18 8.76 #outs F
#locs 8.55 0
#oracle_outputs T
7.16 6.87 7.38 7.60 #outs f
#step 66
8.45 8.77 8.64 8.72 #outs F
#locs 8.48 0
#oracle_outputs T
7.04 7.48 6.93 7.41 #outs f
#step 67
8.27 7.79 8.29 7.77 #outs F
#locs 8.45 0
#oracle_outputs T
6.69 6.72 7.04 6.83 #outs f
#step 68
8.12 8.31 8.50 8.36 #outs F
#locs 8.27 0
#oracle_outputs T
6.04 6.52 6.48 6.31 #outs f
#step 69
7.98 8.06 7.86 7.56 #outs F
#locs 8.12 0
#oracle_outputs T
5.97 5.55 5.91 6.05 #outs t
#step 70
7.88 8.12 7.88 8.17 #outs F
#locs 7.98 0
#oracle_outputs T
6.94 7.22 6.71 6.72 #outs t
#step 71
7.72 7.63 7.77 7.60 #outs F
#locs 7.88 0
#oracle_outputs T
7.82 7.76 7.37 7.70 #outs t
#step 72
7.62 7.34 7.37 7.35 #outs F
#locs 7.72 0
#oracle_outputs T
7.82 7.90 7.55 7.77 #outs t
#step 73
7.57 7.82 7.12 7.10 #outs F
#locs 7.62 0
#oracle_outputs T
8.25 8.22 8.45 8.48 #outs t
#step 74
7.45 7.43 7.14 7.63 #outs F
#locs 7.57 0
#oracle_outputs T
8.25 7.83 8.08 8.34 #outs t
#step 75
7.37 7.45 7.35 6.90 #outs F
#locs 7.45 0
#oracle_outputs T
8.28 7.95 7.80 8.32 #outs t
#step 76
7.33 7.45 7.32 7.23 #outs F
#locs 7.37 0
#oracle_outputs T
8.60 8.24 8.72 8.96 #outs t
#step 77
7.32 7.39 7.81 7.21 #outs F
#locs 7.33 0
#oracle_outputs T
9.37 9.84 9.74 9.41 #outs f
#step 78
7.19 7.08 7.07 6.94 #outs F
#locs 7.32 0
#oracle_outputs T
8.59 8.67 8.12 8.30 #outs f
#step 79
7.12 6.95 7.14 6.65 #outs F
#locs 7.19 0
#oracle_outputs T
8.10 8.10 8.26 7.99 #outs f
#step 80
6.96 7.23 7.16 6.57 #outs F
#locs 7.12 0
#oracle_outputs T
7.67 7.66 7.95 7.91 #outs f
#step 81
6.83 7.25 7.17 6.76 #outs F
#locs 6.96 0
#oracle_outputs T
6.80 7.29 6.71 6.47 #outs f
#step 82
6.64 6.90 6.62 6.14 #outs F
#locs 6.83 0
#oracle_outputs T
6.57 6.88 6.58 6.77 #outs f
#step 83
6.45 6.45 6.46 6.68 #outs F
#locs 6.64 0
#oracle_outputs T
5.87 5.41 5.57 5.85 #outs t
#step 84
6.29 6.38 6.48 6.71 #outs F
#locs 6.45 0
#oracle_outputs T
6.33 6.17 6.74 6.64 #outs t
#step 85
6.23 6.23 6.16 6.31 #outs F
#locs 6.29 0
#oracle_outputs T
6.51 6.98 6.11 6.14 #outs t
#step 86
6.11 6.10 6.00 5.90 #outs T
#locs 6.23 0
#oracle_outputs T
7.01 7.01 6.51 7.26 #outs t
#step 87
5.99 6.19 6.19 5.69 #outs T
#locs 6.11 0
#oracle_outputs T
7.01 6.94 7.27 7.34 #outs t
#step 88
6.07 6.26 6.37 6.30 #outs T
#locs 5.99 0
#oracle_outputs T
7.99 8.43 7.96 7.69 #outs t
#step 89
6.11 5.87 6.41 6.22 #outs T
#locs 6.07 0
#oracle_outputs T
7.99 7.62 7.56 8.33 #outs t
#step 90
6.16 6.20 5.69 6.27 #outs T
#locs 6.11 0
#oracle_outputs T
8.23 8.40 8.12 7.78 #outs t
#step 91
6.28 6.53 6.28 6.52 #outs T
#locs 6.16 0
#oracle_outputs T
8.23 8.14 8.31 8.66 #outs t
#step 92
6.31 6.51 6.57 5.88 #outs T
#locs 6.28 0
#oracle_outputs T
8.45 8.75 8.53 8.35 #outs t
#step 93
6.38 6.88 6.05 6.86 #outs T
#locs 6.31 0
#oracle_outputs T
8.45 8.41 8.48 8.89 #outs t
#step 94
6.43 6.41 6.23 6.45 #outs T
#locs 6.38 0
#oracle_outputs T
9.32 9.37 9.23 9.36 #outs f
#step 95
6.57 6.71 6.15 6.08 #outs T
#locs 6.43 0
#oracle_outputs T
8.69 9.17 8.88 8.69 #outs f
#step 96
6.67 7.02 6.28 6.26 #outs T
#locs 6.57 0
#oracle_outputs T
8.27 7.77 7.83 8.07 #outs f
#step 97
6.75 6.56 7.15 6.37 #outs T
#locs 6.67 0
#oracle_outputs T
8.00 8.04 7.82 7.81 #outs f
#step 98
6.89 7.20 6.76 6.61 #outs T
#locs 6.75 0
#oracle_outputs T
7.34 7.34 7.10 7.59 #outs f
#step 99
6.93 7.25 7.05 7.21 #outs T
#locs 6.89 0
#oracle_outputs T
6.88 7.16 6.77 6.57 #outs f
#step 100
6.95 6.91 7.44 6.90 #outs T
#locs 6.93 0
#
# ==> The test completed; no property has been violated.
#
##
# Coverage:
#
6.60 6.21 6.39 7.00 #outs f
......@@ -37,7 +37,46 @@ Equivalently, you can directly set values at the command line:
... [... testing ...]
"
let (info : unit -> unit) =
fun _ ->
let msg = "The current test parameters are:
sut: "^ (String.concat "," (List.map reactive_program_to_string args.suts)) ^ "
env: "^ (String.concat "," (List.map reactive_program_to_string args.envs)) ^ "
oracle: "^ (String.concat "," (List.map reactive_program_to_string args.oracles)) ^ "
test length: " ^ (string_of_int args.step_nb) ^ "
precision: " ^ (string_of_int args.precision) ^ "
seed: " ^ (match args.seed with
None -> "chosen randomly"
| Some i -> (string_of_int i)) ^ "
verbosity level: " ^ (string_of_int (args.verbose)) ^ "
rif file name: " ^ args.output ^ "
coverage file name: " ^ args.cov_file ^ "
do we stop when an oracle returns false?: "
^ (if args.stop_on_oracle_error then "yes" else "no") ^
(match args.extra_cfiles with
None -> ""
| Some str -> ("
extra_source_files: " ^ str)) ^
(match args.extra_libs with
None -> ""
| Some str -> ("
extra_libs: " ^ str)) ^
(match args.extra_libdirs with
None -> ""
| Some str -> ("
extra_libdirs: " ^ str)) ^
(match args.extra_includedirs with
None -> ""
| Some str -> ("
extra_includedirs: " ^ str)) ^ "
display_local_var: " ^ (if (args.display_local_var) then "yes" else "no") ^ "
"
in
output_string args.ocr msg;
flush args.ocr
let (display : unit -> unit) =
fun _ ->
let msg = "The commands are:
......@@ -52,6 +91,9 @@ quit q, bye
help, h, ?
display this list of commands
info, i
Display a sum-up of the test parameters
man
display a small user manual
......@@ -97,24 +139,23 @@ set_rif <string>, set_output <string>
to set the name of the file the (rif) output of the test is
put into. Its current value is \"" ^ args.output ^ "\"
sim2chro
sim2chro, s
call sim2chro to visualize (rif) data