@@ -7,6 +7,7 @@ set -e -o pipefail
77autotailor=" $top_srcdir /utils/autotailor"
88tailoring=" $( mktemp) "
99ds=" $srcdir /data_stream.xml"
10+ json_tailoring=" $srcdir /custom.json"
1011stdout=" $( mktemp) "
1112original_profile=" P1"
1213result=" $( mktemp) "
@@ -93,11 +94,33 @@ assert_exists 1 '/Benchmark/TestResult/rule-result[@idref="xccdf_com.example.www
9394assert_exists 1 ' /Benchmark/TestResult/rule-result[@idref="xccdf_com.example.www_rule_R3"]/result[text()="pass"]'
9495assert_exists 1 ' /Benchmark/TestResult/rule-result[@idref="xccdf_com.example.www_rule_R4"]/result[text()="notselected"]'
9596
96- # refine value v1 to 30
97+ # set value v1 to thirty
9798python3 $autotailor --id-namespace " com.example.www" --var-value V1=thirty $ds $original_profile > $tailoring
9899$OSCAP xccdf eval --profile P1_customized --progress --tailoring-file $tailoring --results $result $ds
99100assert_exists 1 ' /Benchmark/TestResult/set-value[@idref="xccdf_com.example.www_value_V1" and text()="thirty"]'
100101assert_exists 1 ' /Benchmark/TestResult/rule-result[@idref="xccdf_com.example.www_rule_R1"]/result[text()="pass"]'
101102assert_exists 1 ' /Benchmark/TestResult/rule-result[@idref="xccdf_com.example.www_rule_R2"]/result[text()="pass"]'
102103assert_exists 1 ' /Benchmark/TestResult/rule-result[@idref="xccdf_com.example.www_rule_R3"]/result[text()="notselected"]'
103104assert_exists 1 ' /Benchmark/TestResult/rule-result[@idref="xccdf_com.example.www_rule_R4"]/result[text()="notselected"]'
105+
106+ # refine value v1 to 'thirty' (30) and v2 to 'other' (Other Value)
107+ python3 $autotailor --id-namespace " com.example.www" --var-select V1=thirty --var-select V2=other $ds $original_profile > $tailoring
108+ $OSCAP xccdf eval --profile P1_customized --progress --tailoring-file $tailoring --results $result $ds
109+ assert_exists 1 ' /Benchmark/TestResult/set-value[@idref="xccdf_com.example.www_value_V1" and text()="30"]'
110+ assert_exists 1 ' /Benchmark/TestResult/set-value[@idref="xccdf_com.example.www_value_V2" and text()="Other Value"]'
111+ assert_exists 1 ' /Benchmark/TestResult/rule-result[@idref="xccdf_com.example.www_rule_R1"]/result[text()="pass"]'
112+ assert_exists 1 ' /Benchmark/TestResult/rule-result[@idref="xccdf_com.example.www_rule_R2"]/result[text()="pass"]'
113+ assert_exists 1 ' /Benchmark/TestResult/rule-result[@idref="xccdf_com.example.www_rule_R3"]/result[text()="notselected"]'
114+ assert_exists 1 ' /Benchmark/TestResult/rule-result[@idref="xccdf_com.example.www_rule_R4"]/result[text()="notselected"]'
115+
116+ # use JSON tailoring
117+ python3 $autotailor $ds --id-namespace " com.example.www" --json-tailoring $json_tailoring > $tailoring
118+ $OSCAP xccdf eval --profile JSON_P1 --progress --tailoring-file $tailoring --results $result $ds
119+ assert_exists 1 ' /Benchmark/TestResult/set-value[@idref="xccdf_com.example.www_value_V1" and text()="New Value"]'
120+ assert_exists 1 ' /Benchmark/TestResult/set-value[@idref="xccdf_com.example.www_value_V2" and text()="Some Value"]'
121+ assert_exists 1 ' /Benchmark/TestResult/rule-result[@idref="xccdf_com.example.www_rule_R1"]/result[text()="notselected"]'
122+ assert_exists 1 ' /Benchmark/TestResult/rule-result[@idref="xccdf_com.example.www_rule_R2"]/result[text()="pass"]'
123+ assert_exists 1 ' /Benchmark/TestResult/rule-result[@idref="xccdf_com.example.www_rule_R3"]/result[text()="notselected"]'
124+ assert_exists 1 ' /Benchmark/TestResult/rule-result[@idref="xccdf_com.example.www_rule_R3" and @severity="unknown"]'
125+ assert_exists 1 ' /Benchmark/TestResult/rule-result[@idref="xccdf_com.example.www_rule_R4"]/result[text()="notselected"]'
126+ assert_exists 1 ' /Benchmark/TestResult/rule-result[@idref="xccdf_com.example.www_rule_R4" and @role="unchecked"]'
0 commit comments