summaryrefslogtreecommitdiffstats
path: root/src/spdk/test/json_config/json_diff.sh
blob: e6b9e223dd6f34a4d249b632236d706686f93bf9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/env bash

set -x

if [ $# -ne 2 ]; then
	echo "This script need exactly two arguments"
	exit 1
fi

rootdir=$(readlink -f $(dirname $0)/../..)

# Compare two JSON files.
#
# NOTE: Order of objects in JSON can change by just doing loads -> dumps so all JSON objects (not arrays) are sorted by
# config_filter.py script. Sorted output is used to compare JSON output.
#

tmp_file_1=$(mktemp /tmp/$(basename ${1}).XXX)
tmp_file_2=$(mktemp /tmp/$(basename ${2}).XXX)
ret=0

$rootdir/test/json_config/config_filter.py -method "sort" < $1 > $tmp_file_1
$rootdir/test/json_config/config_filter.py -method "sort" < $2 > $tmp_file_2

if ! diff -u $tmp_file_1 $tmp_file_2; then
	ret=1

	echo "=== Start of file: $tmp_file_1 ==="
	cat $tmp_file_1
	echo "=== End of file: $tmp_file_1 ==="
	echo ""
	echo "=== Start of file: $tmp_file_2 ==="
	cat $tmp_file_2
	echo "=== End of file: $tmp_file_2 ==="
	echo ""
else
	echo "INFO: JSON config files are the same"
fi

rm $tmp_file_1 $tmp_file_2
exit $ret