@@ -102,6 +102,52 @@ jobs:
102102 - name : fabtoken-owner-verifier
103103 pkg : ./token/core/fabtoken/v1/driver
104104 func : FuzzOwnerVerifierNoPanic
105+ # The evm driver is its own Go module, so its targets run from that module's root rather
106+ # than the repository root. `dir` defaults to "." for every entry above.
107+ - name : evm-recover-endorsement-signature
108+ dir : ./x/token/services/network/evm
109+ pkg : ./eip712
110+ func : FuzzRecoverAddress
111+ - name : evm-signer-from-bytes
112+ dir : ./x/token/services/network/evm
113+ pkg : ./eip712
114+ func : FuzzNewSignerFromBytes
115+ - name : evm-envelope-from-bytes
116+ dir : ./x/token/services/network/evm
117+ pkg : .
118+ func : FuzzEnvelopeFromBytes
119+ - name : evm-compute-anchor
120+ dir : ./x/token/services/network/evm
121+ pkg : .
122+ func : FuzzComputeAnchor
123+ - name : evm-abi-decode-bytes
124+ dir : ./x/token/services/network/evm
125+ pkg : ./abi
126+ func : FuzzDecodeBytes
127+ - name : evm-abi-decode-bool-array
128+ dir : ./x/token/services/network/evm
129+ pkg : ./abi
130+ func : FuzzDecodeBoolArray
131+ - name : evm-abi-decode-uint64
132+ dir : ./x/token/services/network/evm
133+ pkg : ./abi
134+ func : FuzzDecodeUint64
135+ - name : evm-abi-decode-bytes32
136+ dir : ./x/token/services/network/evm
137+ pkg : ./abi
138+ func : FuzzDecodeBytes32
139+ - name : evm-hex-to-address
140+ dir : ./x/token/services/network/evm
141+ pkg : ./client
142+ func : FuzzHexToAddress
143+ - name : evm-hex-to-hash
144+ dir : ./x/token/services/network/evm
145+ pkg : ./client
146+ func : FuzzHexToHash
147+ - name : evm-bytes-to-address
148+ dir : ./x/token/services/network/evm
149+ pkg : ./client
150+ func : FuzzBytesToAddress
105151
106152 steps :
107153 - name : Checkout code
@@ -122,6 +168,7 @@ jobs:
122168 fuzz-${{ matrix.name }}-
123169
124170 - name : Run fuzz campaign
171+ working-directory : ${{ matrix.dir || '.' }}
125172 run : |
126173 set -o pipefail
127174 go test ${{ matrix.pkg }} \
@@ -132,6 +179,9 @@ jobs:
132179
133180 - name : Collect crash artifacts
134181 if : failure()
182+ # Same directory the campaign ran in: both the log and the corpus that reproduces the crash are
183+ # written relative to it, and losing them would leave only the fact that something failed.
184+ working-directory : ${{ matrix.dir || '.' }}
135185 run : |
136186 mkdir -p fuzz-failure
137187 cp fuzz-output.log fuzz-failure/ || true
@@ -143,7 +193,7 @@ jobs:
143193 uses : actions/upload-artifact@v4
144194 with :
145195 name : fuzz-failure-${{ matrix.name }}
146- path : fuzz-failure/
196+ path : ${{ matrix.dir || '.' }}/ fuzz-failure/
147197 retention-days : 30
148198
149199 - name : File or update GitHub issue
0 commit comments