11package platforms
22
33import (
4- "github.com/crytic/medusa/compilation/types"
5- "github.com/crytic/medusa/utils"
6- "github.com/crytic/medusa/utils/testutils"
7- "github.com/stretchr/testify/assert"
84 "os"
95 "os/exec"
106 "path/filepath"
117 "strings"
128 "testing"
9+
10+ "github.com/crytic/medusa/compilation/types"
11+ "github.com/crytic/medusa/utils"
12+ "github.com/crytic/medusa/utils/testutils"
13+ "github.com/stretchr/testify/assert"
1314)
1415
1516// testCryticGetCompiledSourceByBaseName checks if a given source file exists in a given compilation's map of sources.
1617// The source file is the file name of a specific file. This function simply checks one of the paths ends with
1718// this name. Avoid including any directories in case the path separators differ per system.
1819// Returns the types.CompiledSource (mapping value) associated to the path if it is found. Returns nil otherwise.
19- func testCryticGetCompiledSourceByBaseName (sources map [string ]types.CompiledSource , name string ) * types.CompiledSource {
20+ func testCryticGetCompiledSourceByBaseName (sources map [string ]types.SourceArtifact , name string ) * types.SourceArtifact {
2021 // Obtain a lower case version of our name to search for
2122 lowerName := strings .ToLower (name )
2223
@@ -53,10 +54,10 @@ func TestCryticSingleFileAbsolutePath(t *testing.T) {
5354 // One compilation object
5455 assert .EqualValues (t , 1 , len (compilations ))
5556 // One source because we specified one file
56- assert .EqualValues (t , 1 , len (compilations [0 ].Sources ))
57+ assert .EqualValues (t , 1 , len (compilations [0 ].SourcePathToArtifact ))
5758 // Two contracts in SimpleContract.sol
5859 contractCount := 0
59- for _ , source := range compilations [0 ].Sources {
60+ for _ , source := range compilations [0 ].SourcePathToArtifact {
6061 contractCount += len (source .Contracts )
6162 }
6263 assert .EqualValues (t , 2 , contractCount )
@@ -82,10 +83,10 @@ func TestCryticSingleFileRelativePathSameDirectory(t *testing.T) {
8283 // One compilation object
8384 assert .EqualValues (t , 1 , len (compilations ))
8485 // One source because we specified one file
85- assert .EqualValues (t , 1 , len (compilations [0 ].Sources ))
86+ assert .EqualValues (t , 1 , len (compilations [0 ].SourcePathToArtifact ))
8687 // Two contracts in SimpleContract.sol
8788 contractCount := 0
88- for _ , source := range compilations [0 ].Sources {
89+ for _ , source := range compilations [0 ].SourcePathToArtifact {
8990 contractCount += len (source .Contracts )
9091 }
9192 assert .EqualValues (t , 2 , contractCount )
@@ -118,10 +119,10 @@ func TestCryticSingleFileRelativePathChildDirectory(t *testing.T) {
118119 // One compilation object
119120 assert .EqualValues (t , 1 , len (compilations ))
120121 // One source because we specified one file
121- assert .EqualValues (t , 1 , len (compilations [0 ].Sources ))
122+ assert .EqualValues (t , 1 , len (compilations [0 ].SourcePathToArtifact ))
122123 // Two contracts in SimpleContract.sol
123124 contractCount := 0
124- for _ , source := range compilations [0 ].Sources {
125+ for _ , source := range compilations [0 ].SourcePathToArtifact {
125126 contractCount += len (source .Contracts )
126127 }
127128 assert .EqualValues (t , 2 , contractCount )
@@ -160,9 +161,9 @@ func TestCryticSingleFileBuildDirectoryArgRelativePath(t *testing.T) {
160161 // One compilation object
161162 assert .EqualValues (t , 1 , len (compilations ))
162163 // One source because we specified one file
163- assert .EqualValues (t , 1 , len (compilations [0 ].Sources ))
164+ assert .EqualValues (t , 1 , len (compilations [0 ].SourcePathToArtifact ))
164165 // Two contracts in SimpleContract.sol.
165- compiledSource := testCryticGetCompiledSourceByBaseName (compilations [0 ].Sources , contractName )
166+ compiledSource := testCryticGetCompiledSourceByBaseName (compilations [0 ].SourcePathToArtifact , contractName )
166167 assert .NotNil (t , compiledSource , "source file could not be resolved in compilation sources" )
167168 assert .EqualValues (t , 2 , len (compiledSource .Contracts ))
168169 })
@@ -215,11 +216,11 @@ func TestCryticMultipleFiles(t *testing.T) {
215216 // Verify there is one compilation object
216217 assert .EqualValues (t , 1 , len (compilations ))
217218 // Verify there are two sources
218- assert .EqualValues (t , 2 , len (compilations [0 ].Sources ))
219+ assert .EqualValues (t , 2 , len (compilations [0 ].SourcePathToArtifact ))
219220
220221 // Verify there are three contracts
221222 contractCount := 0
222- for _ , source := range compilations [0 ].Sources {
223+ for _ , source := range compilations [0 ].SourcePathToArtifact {
223224 contractCount += len (source .Contracts )
224225 }
225226 assert .EqualValues (t , 3 , contractCount )
@@ -247,16 +248,16 @@ func TestCryticDirectoryNoArgs(t *testing.T) {
247248 // Two compilation objects
248249 assert .EqualValues (t , 2 , len (compilations ))
249250 // One source per compilation unit
250- assert .EqualValues (t , 1 , len (compilations [0 ].Sources ))
251- assert .EqualValues (t , 1 , len (compilations [1 ].Sources ))
251+ assert .EqualValues (t , 1 , len (compilations [0 ].SourcePathToArtifact ))
252+ assert .EqualValues (t , 1 , len (compilations [1 ].SourcePathToArtifact ))
252253
253254 // Obtain the compiled source from both compilation units
254255 firstContractName := "FirstContract.sol"
255256 secondContractName := "SecondContract.sol"
256- firstUnitFirstContractSource := testCryticGetCompiledSourceByBaseName (compilations [0 ].Sources , firstContractName )
257- firstUnitSecondContractSource := testCryticGetCompiledSourceByBaseName (compilations [0 ].Sources , secondContractName )
258- secondUnitFirstContractSource := testCryticGetCompiledSourceByBaseName (compilations [1 ].Sources , firstContractName )
259- secondUnitSecondContractSource := testCryticGetCompiledSourceByBaseName (compilations [1 ].Sources , secondContractName )
257+ firstUnitFirstContractSource := testCryticGetCompiledSourceByBaseName (compilations [0 ].SourcePathToArtifact , firstContractName )
258+ firstUnitSecondContractSource := testCryticGetCompiledSourceByBaseName (compilations [0 ].SourcePathToArtifact , secondContractName )
259+ secondUnitFirstContractSource := testCryticGetCompiledSourceByBaseName (compilations [1 ].SourcePathToArtifact , firstContractName )
260+ secondUnitSecondContractSource := testCryticGetCompiledSourceByBaseName (compilations [1 ].SourcePathToArtifact , secondContractName )
260261
261262 // Assert that each compilation unit should have two contracts in it.
262263 // Compilation unit ordering is non-deterministic in JSON output
0 commit comments