@@ -14,13 +14,19 @@ RUN_MACARON_SCRIPT=$2
1414
1515# The scripts to compare the results of the integration tests.
1616COMPARE_DEPS=$WORKSPACE /tests/dependency_analyzer/compare_dependencies.py
17- COMPARE_JSON_OUT=$WORKSPACE /tests/e2e/compare_e2e_result.py
1817COMPARE_POLICIES=$WORKSPACE /tests/policy_engine/compare_policy_reports.py
1918COMPARE_VSA=$WORKSPACE /tests/vsa/compare_vsa.py
2019UNIT_TEST_SCRIPT=$WORKSPACE /scripts/dev_scripts/test_run_macaron_sh.py
20+ RUN_POLICY=" $RUN_MACARON_SCRIPT verify-policy"
21+ DB=$WORKSPACE /output/macaron.db
2122
2223RESULT_CODE=0
2324
25+ function run_macaron_clean() {
26+ rm $DB
27+ $RUN_MACARON_SCRIPT " $@ "
28+ }
29+
2430function log_fail() {
2531 printf " Error: FAILED integration test (line ${BASH_LINENO} ) %s\n" $@
2632 RESULT_CODE=1
@@ -37,49 +43,47 @@ echo "with dependency resolution using cyclonedx Gradle plugin (default)."
3743echo -e " ----------------------------------------------------------------------------------\n"
3844DEP_RESULT=$WORKSPACE /output/reports/github_com/timyarkov/multibuild_test/dependencies.json
3945DEP_EXPECTED=$WORKSPACE /tests/dependency_analyzer/expected_results/cyclonedx_timyarkov_multibuild_test.json
40- JSON_RESULT=$WORKSPACE /output/reports/github_com/timyarkov/multibuild_test/multibuild_test.json
41- JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/multibuild_test/multibuild_test.json
42- $RUN_MACARON_SCRIPT analyze -rp https://github.com/timyarkov/multibuild_test -b main -d a8b0efe24298bc81f63217aaa84776c3d48976c5 || log_fail
46+ OUTPUT_POLICY=$WORKSPACE /tests/e2e/expected_results/multibuild_test/multibuild_test.dl
47+ run_macaron_clean analyze -rp https://github.com/timyarkov/multibuild_test -b main -d a8b0efe24298bc81f63217aaa84776c3d48976c5 || log_fail
4348
4449python $COMPARE_DEPS $DEP_RESULT $DEP_EXPECTED || log_fail
4550
46- python $COMPARE_JSON_OUT $JSON_RESULT $JSON_EXPECTED || log_fail
51+ $RUN_POLICY -d $DB -f $OUTPUT_POLICY || log_fail
4752
4853echo -e " \n----------------------------------------------------------------------------------"
4954echo " apache/maven: Check the resolved dependency output with config for cyclonedx maven plugin (default)."
5055echo -e " ----------------------------------------------------------------------------------\n"
5156DEP_RESULT=$WORKSPACE /output/reports/github_com/apache/maven/dependencies.json
5257DEP_EXPECTED=$WORKSPACE /tests/dependency_analyzer/expected_results/cyclonedx_apache_maven.json
5358
54- $RUN_MACARON_SCRIPT analyze -c $WORKSPACE /tests/dependency_analyzer/configurations/maven_config.yaml || log_fail
59+ run_macaron_clean analyze -c $WORKSPACE /tests/dependency_analyzer/configurations/maven_config.yaml || log_fail
5560python $COMPARE_DEPS $DEP_RESULT $DEP_EXPECTED || log_fail
5661
5762echo -e " \n----------------------------------------------------------------------------------"
5863echo " apache/maven: e2e using the local repo path, the branch name and the commit digest without dependency resolution."
5964echo -e " ----------------------------------------------------------------------------------\n"
60- JSON_RESULT=$WORKSPACE /output/reports/github_com/apache/maven/maven.json
61- JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/maven/maven.json
65+ OUTPUT_POLICY=$WORKSPACE /tests/e2e/expected_results/maven/maven.dl
66+
67+ run_macaron_clean -lr $WORKSPACE /output/git_repos/github_com analyze -r apache/maven -b master -d 3fc399318edef0d5ba593723a24fff64291d6f9b --skip-deps || log_fail
6268
63- $RUN_MACARON_SCRIPT -lr $WORKSPACE /output/git_repos/github_com analyze -r apache/maven -b master -d 3fc399318edef0d5ba593723a24fff64291d6f9b --skip-deps || log_fail
64- python $COMPARE_JSON_OUT $JSON_RESULT $JSON_EXPECTED || log_fail
69+ $RUN_POLICY -d $DB -f $OUTPUT_POLICY || log_fail
6570
6671echo -e " \n----------------------------------------------------------------------------------"
6772echo " apache/maven: Check the e2e output JSON file with config and no dependency analyzing."
6873echo -e " ----------------------------------------------------------------------------------\n"
69- JSON_RESULT_DIR=$WORKSPACE /output/reports/github_com/apache/maven
70- JSON_EXPECT_DIR=$WORKSPACE /tests/e2e/expected_results/maven
74+ EXPECT_DIR=$WORKSPACE /tests/e2e/expected_results/maven
7175
7276declare -a COMPARE_FILES=(
73- " maven.json "
74- " guava.json "
75- " mockito.json "
77+ " maven.dl "
78+ " guava.dl "
79+ " mockito.dl "
7680)
7781
78- $RUN_MACARON_SCRIPT analyze -c $WORKSPACE /tests/e2e/configurations/maven_config.yaml --skip-deps || log_fail
82+ run_macaron_clean analyze -c $WORKSPACE /tests/e2e/configurations/maven_config.yaml --skip-deps || log_fail
7983
8084for i in " ${COMPARE_FILES[@]} "
8185do
82- python $COMPARE_JSON_OUT $JSON_RESULT_DIR / $i $JSON_EXPECT_DIR /$i || log_fail
86+ $RUN_POLICY -d $DB -f $EXPECT_DIR /$i || log_fail
8387done
8488
8589echo -e " \n----------------------------------------------------------------------------------"
@@ -89,63 +93,47 @@ SBOM_FILE=$WORKSPACE/tests/dependency_analyzer/cyclonedx/resources/apache_maven_
8993DEP_EXPECTED=$WORKSPACE /tests/dependency_analyzer/expected_results/apache_maven_with_sbom_provided.json
9094DEP_RESULT=$WORKSPACE /output/reports/github_com/apache/maven/dependencies.json
9195
92- $RUN_MACARON_SCRIPT analyze -rp https://github.com/apache/maven -b master -d 3fc399318edef0d5ba593723a24fff64291d6f9b -sbom $SBOM_FILE || log_fail
96+ run_macaron_clean analyze -rp https://github.com/apache/maven -b master -d 3fc399318edef0d5ba593723a24fff64291d6f9b -sbom $SBOM_FILE || log_fail
9397
9498python $COMPARE_DEPS $DEP_RESULT $DEP_EXPECTED || log_fail
9599
96100echo -e " \n----------------------------------------------------------------------------------"
97101echo " apache/maven: Analyzing with PURL and repository path without dependency resolution."
98102echo -e " ----------------------------------------------------------------------------------\n"
99- JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/purl/maven/maven.json
100- JSON_RESULT=$WORKSPACE /output/reports/maven/apache/maven/maven.json
101- $RUN_MACARON_SCRIPT analyze -purl pkg:maven/apache/maven -rp https://github.com/apache/maven -b master -d 3fc399318edef0d5ba593723a24fff64291d6f9b --skip-deps || log_fail
103+ JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/purl/maven/maven.dl
104+ run_macaron_clean analyze -purl pkg:maven/apache/maven -rp https://github.com/apache/maven -b master -d 3fc399318edef0d5ba593723a24fff64291d6f9b --skip-deps || log_fail
102105
103- python $COMPARE_JSON_OUT $JSON_RESULT $JSON_EXPECTED || log_fail
106+ $RUN_POLICY -d $DB -f $OUTPUT_POLICY || log_fail
104107
105108echo -e " \n----------------------------------------------------------------------------------"
106109echo " urllib3/urllib3: Analyzing the repo path when automatic dependency resolution is skipped."
107110echo " The CUE expectation file is provided as a single file path."
108111echo -e " ----------------------------------------------------------------------------------\n"
109- JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/urllib3/urllib3.json
110- JSON_RESULT=$WORKSPACE /output/reports/github_com/urllib3/urllib3/urllib3.json
112+ JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/urllib3/urllib3.dl
111113EXPECTATION_FILE=$WORKSPACE /tests/slsa_analyzer/provenance/expectations/cue/resources/valid_expectations/urllib3_PASS.cue
112- $RUN_MACARON_SCRIPT analyze -pe $EXPECTATION_FILE -rp https://github.com/urllib3/urllib3/urllib3 -b main -d 87a0ecee6e691fe5ff93cd000c0158deebef763b --skip-deps || log_fail
114+ run_macaron_clean analyze -pe $EXPECTATION_FILE -rp https://github.com/urllib3/urllib3/urllib3 -b main -d 87a0ecee6e691fe5ff93cd000c0158deebef763b --skip-deps || log_fail
113115
114- python $COMPARE_JSON_OUT $JSON_RESULT $JSON_EXPECTED || log_fail
116+ $RUN_POLICY -d $DB -f $OUTPUT_POLICY || log_fail
115117
116118echo -e " \n----------------------------------------------------------------------------------"
117119echo " urllib3/urllib3: Analyzing the repo path when automatic dependency resolution is skipped."
118120echo " The CUE expectation file should be found via the directory path."
119121echo -e " ----------------------------------------------------------------------------------\n"
120- JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/urllib3/urllib3.json
121- JSON_RESULT=$WORKSPACE /output/reports/github_com/urllib3/urllib3/urllib3.json
122+ JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/urllib3/urllib3.dl
122123EXPECTATION_DIR=$WORKSPACE /tests/slsa_analyzer/provenance/expectations/cue/resources/valid_expectations/
123- $RUN_MACARON_SCRIPT analyze -pe $EXPECTATION_DIR -rp https://github.com/urllib3/urllib3/urllib3 -b main -d 87a0ecee6e691fe5ff93cd000c0158deebef763b --skip-deps || log_fail
124+ run_macaron_clean analyze -pe $EXPECTATION_DIR -rp https://github.com/urllib3/urllib3/urllib3 -b main -d 87a0ecee6e691fe5ff93cd000c0158deebef763b --skip-deps || log_fail
124125
125- python $COMPARE_JSON_OUT $JSON_RESULT $JSON_EXPECTED || log_fail
126+ $RUN_POLICY -d $DB -f $OUTPUT_POLICY || log_fail
126127
127128echo -e " \n----------------------------------------------------------------------------------"
128129echo " Test verifying CUE provenance expectation for ossf/scorecard"
129130echo -e " ----------------------------------------------------------------------------------\n"
130- JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/scorecard/scorecard.json
131- JSON_RESULT=$WORKSPACE /output/reports/github/ossf/scorecard/scorecard.json
131+ JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/scorecard/scorecard.dl
132132DEFAULTS_FILE=$WORKSPACE /tests/e2e/defaults/scorecard.ini
133133EXPECTATION_FILE=$WORKSPACE /tests/slsa_analyzer/provenance/expectations/cue/resources/valid_expectations/scorecard_PASS.cue
134- $RUN_MACARON_SCRIPT -dp
$DEFAULTS_FILE analyze -pe
$EXPECTATION_FILE -purl pkg:github/ossf/
[email protected] --skip-deps
|| log_fail
134+ run_macaron_clean -dp
$DEFAULTS_FILE analyze -pe
$EXPECTATION_FILE -purl pkg:github/ossf/
[email protected] --skip-deps
|| log_fail
135135
136- python $COMPARE_JSON_OUT $JSON_RESULT $JSON_EXPECTED || log_fail
137-
138- echo -e " \n----------------------------------------------------------------------------------"
139- echo " slsa-framework/slsa-verifier: Analyzing the repo path when automatic dependency resolution is skipped"
140- echo " and CUE file is provided as expectation."
141- echo -e " ----------------------------------------------------------------------------------\n"
142- JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/slsa-verifier/slsa-verifier_cue_PASS.json
143- JSON_RESULT=$WORKSPACE /output/reports/github_com/slsa-framework/slsa-verifier/slsa-verifier.json
144- EXPECTATION_FILE=$WORKSPACE /tests/slsa_analyzer/provenance/expectations/cue/resources/valid_expectations/slsa_verifier_PASS.cue
145- DEFAULTS_FILE=$WORKSPACE /tests/e2e/defaults/slsa_verifier.ini
146- $RUN_MACARON_SCRIPT -dp $DEFAULTS_FILE analyze -pe $EXPECTATION_FILE -rp https://github.com/slsa-framework/slsa-verifier -b main -d fc50b662fcfeeeb0e97243554b47d9b20b14efac --skip-deps || log_fail
147-
148- python $COMPARE_JSON_OUT $JSON_RESULT $JSON_EXPECTED || log_fail
136+ $RUN_POLICY -d $DB -f $OUTPUT_POLICY || log_fail
149137
150138echo -e " \n----------------------------------------------------------------------------------"
151139echo " Run policy CLI with scorecard results."
@@ -160,11 +148,21 @@ $RUN_MACARON_SCRIPT verify-policy -f $POLICY_FILE -d "$WORKSPACE/output/macaron.
160148python $COMPARE_POLICIES $POLICY_RESULT $POLICY_EXPECTED || log_fail
161149python " $COMPARE_VSA " " $VSA_RESULT " " $VSA_PAYLOAD_EXPECTED " || log_fail
162150
151+ echo -e " \n----------------------------------------------------------------------------------"
152+ echo " slsa-framework/slsa-verifier: Analyzing the repo path when automatic dependency resolution is skipped"
153+ echo " and CUE file is provided as expectation."
154+ echo -e " ----------------------------------------------------------------------------------\n"
155+ JSON_EXPECTED=$WORKSPACE /tests/e2e/expected_results/slsa-verifier/slsa-verifier_cue_PASS.dl
156+ EXPECTATION_FILE=$WORKSPACE /tests/slsa_analyzer/provenance/expectations/cue/resources/valid_expectations/slsa_verifier_PASS.cue
157+ DEFAULTS_FILE=$WORKSPACE /tests/e2e/defaults/slsa_verifier.ini
158+ run_macaron_clean -dp $DEFAULTS_FILE analyze -pe $EXPECTATION_FILE -rp https://github.com/slsa-framework/slsa-verifier -b main -d fc50b662fcfeeeb0e97243554b47d9b20b14efac --skip-deps || log_fail
159+
160+ $RUN_POLICY -d $DB -f $OUTPUT_POLICY || log_fail
161+
163162echo -e " \n----------------------------------------------------------------------------------"
164163echo " behnazh-w/example-maven-app as a local and remote repository"
165164echo " Test the Witness and GitHub provenances as an input, Cue expectation validation, Policy CLI and VSA generation."
166165echo -e " ----------------------------------------------------------------------------------\n"
167- RUN_POLICY=" macaron verify-policy"
168166POLICY_FILE=$WORKSPACE /tests/policy_engine/resources/policies/example-maven-project/policy.dl
169167POLICY_RESULT=$WORKSPACE /output/policy_report.json
170168POLICY_EXPECTED=$WORKSPACE /tests/policy_engine/expected_results/example-maven-project/example_maven_project_policy_report.json
@@ -179,7 +177,7 @@ WITNESS_PROVENANCE_FILE=$WORKSPACE/tests/slsa_analyzer/provenance/resources/vali
179177git clone https://github.com/behnazh-w/example-maven-app.git $WORKSPACE /output/git_repos/local_repos/example-maven-app || log_fail
180178
181179# Check the Witness provenance.
182- $RUN_MACARON_SCRIPT analyze -pf
$WITNESS_PROVENANCE_FILE -pe
$WITNESS_EXPECTATION_FILE -purl pkg:maven/io.github.behnazh-w.demo/
[email protected] ? type=jar --repo-path example-maven-app --skip-deps
|| log_fail
180+ run_macaron_clean analyze -pf
$WITNESS_PROVENANCE_FILE -pe
$WITNESS_EXPECTATION_FILE -purl pkg:maven/io.github.behnazh-w.demo/
[email protected] ? type=jar --repo-path example-maven-app --skip-deps
|| log_fail
183181
184182# Test the remote repo with GitHub provenance.
185183GITHUB_EXPECTATION_FILE=$WORKSPACE /tests/slsa_analyzer/provenance/expectations/cue/resources/valid_expectations/github-example-maven-project.cue
0 commit comments