mopsa-diff
The script mopsa-diff
compares two JSON reports and shows the list of differences, in terms of alarms and analysis time.
It is also possible to compare two folders containing several JSON reports, which is useful when comparing two instances of a benchmark over several programs or configurations.
By default, the script has a return code of 0 if the two logs are equivalent (same set of alarms and same time up to a tolerance), and 1 if a difference is detected (one log has an alarm this is not present in the other log or the time difference exceeds the tolerance threshold).
The script mopsa-diff
accepts the following options:
- --summary
Print a summary of the differences.
- --ignore-time
Ignore differences in analysis time (default:
false
).
- --time-tolerance <delta>
Set the tolerated time difference, in milliseconds (default:
1000
).
- --regression
The return code is 1 only if the second log contains an alarm that is not in the first log, or if it takes longer. If the second log has no extra alarm and if takes as much or less time, 0 is returned instead.
Example
Consider the programs hello.c
and hello-fixed.c
from the Basic Usage section.
We analyze both programs, taking care to output to JSON files (using the -format=json
and the -output
options), and compute the difference:
$ mopsa-c hello.c -format=json -output=hello.json
$ mopsa-c hello-fixed.c -format=json -output=hello-fixed.json
$ mopsa-diff hello.json hello-fixed.json
We get the following output:
1 report compared
--- hello.json
+++ hello-fixed.json
- hello.c:5.4-8: alarm: Invalid memory access