aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tools/testing/selftests/rcutorture/bin/configcheck.sh
blob: 99162d18bad3d17bd322ee64aa947660932db521 (plain) (blame)
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
42
43
44
45
46
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0+
#
# Usage: configcheck.sh .config .config-template
#
# Non-empty output if errors detected.
#
# Copyright (C) IBM Corporation, 2011
#
# Authors: Paul E. McKenney <paulmck@linux.ibm.com>

T="`mktemp -d ${TMPDIR-/tmp}/configcheck.sh.XXXXXX`"
trap 'rm -rf $T' 0

# function test_kconfig_enabled ( Kconfig-var=val )
function test_kconfig_enabled () {
	if ! grep -q "^$1$" $T/.config
	then
		echo :$1: improperly set
		return 1
	fi
	return 0
}

# function test_kconfig_disabled ( Kconfig-var )
function test_kconfig_disabled () {
	if grep -q "^$1=n$" $T/.config
	then
		return 0
	fi
	if grep -q "^$1=" $T/.config
	then
		echo :$1=n: improperly set
		return 1
	fi
	return 0
}

sed -e 's/"//g' < $1 > $T/.config
sed -e 's/^#CHECK#//' < $2 > $T/ConfigFragment
grep '^CONFIG_.*=n$' $T/ConfigFragment |
	sed -e 's/^/test_kconfig_disabled /' -e 's/=n$//' > $T/kconfig-n.sh
. $T/kconfig-n.sh
grep -v '^CONFIG_.*=n$' $T/ConfigFragment | grep '^CONFIG_' |
	sed -e 's/^/test_kconfig_enabled /' > $T/kconfig-not-n.sh
. $T/kconfig-not-n.sh