Skip to content

Commit 1a8d65c

Browse files
committed
route fixtures into conformance instead of direct invoke
1 parent 32feda1 commit 1a8d65c

File tree

1 file changed

+4
-25
lines changed

1 file changed

+4
-25
lines changed

scripts/ci/fd-conformance.mjs

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ for (const fixture of skipFixtures) {
3131
await $`rm -f ${path.join(fixturesPath, fixture)}`;
3232
}
3333

34+
// Add the Mollusk-generated fixtures to the test inputs.
35+
const molluskFixturesPath = path.join(workingDirectory, 'program', 'fuzz', 'blob');
36+
await $`cp -a ${molluskFixturesPath}/. ${fixturesPath}/`;
37+
3438
// Clone the SolFuzz-Agave harness.
3539
const solFuzzAgavePath = path.join(harnessPath, 'impl', 'solfuzz-agave');
3640
await $`git clone -b core-bpf-conformance http://github.com/buffalojoec/solfuzz-agave.git ${solFuzzAgavePath}`;
@@ -90,28 +94,3 @@ if (fs.existsSync('test_results/failed_protobufs')) {
9094

9195
console.log('All Firedancer conformance tests passed.');
9296

93-
// Build the Agave target with the BPF version, this time without any
94-
// conformance special-casing (just the `core-bpf` feature).
95-
await $`CORE_BPF_PROGRAM_ID=${getProgramId('program')} \
96-
CORE_BPF_TARGET=${getProgramSharedObjectPath('program')} \
97-
FORCE_RECOMPILE=true \
98-
cargo build --manifest-path ${solFuzzAgaveManifestPath} \
99-
--lib --release --target x86_64-unknown-linux-gnu --features core-bpf`;
100-
await $`mv ${solFuzzAgaveTargetPath} ${testTargetPathCoreBpf}`;
101-
102-
// Now run the conformance harness on just the BPF program with the fixtures
103-
// generated by Mollusk in the program's `fuzz/blob` directory.
104-
const molluskFixturesPath = path.join(workingDirectory, 'program', 'fuzz', 'blob');
105-
const result = await $`source test_suite_env/bin/activate && \
106-
solana-test-suite exec-fixtures \
107-
-i ${molluskFixturesPath} \
108-
-t ${testTargetPathCoreBpf}`;
109-
110-
// Assert conformance.
111-
// There should be no "Failed tests:" section in the output.
112-
if (/Failed tests:/.test(result.stdout.split('\n').slice(-2).join('\n'))) {
113-
console.error("Error: Some Mollusk-generated fixture executions failed.");
114-
process.exit(1);
115-
} else {
116-
console.log('All Mollusk-generated fixture executions passed.');
117-
}

0 commit comments

Comments
 (0)