Skip to content

Commit 6dcc303

Browse files
committed
Change name to DEBRICKED_VERSION
1 parent 7c4f997 commit 6dcc303

File tree

7 files changed

+79
-13
lines changed

7 files changed

+79
-13
lines changed

.github/workflows/test.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@ jobs:
9292
distribution: 'temurin'
9393

9494
- name: Install Debricked CLI
95-
run: go install -ldflags "-X main.version=${GITHUB_REF#refs/heads/}" ./cmd/debricked
95+
run: |
96+
go install -ldflags "-X main.version=${{ secrets.DEBRICKED_VERSION }:-GITHUB_REF#refs/heads/}" ./cmd/debricked
9697
9798
- name: Callgraph E2E
9899
run: ./scripts/test_e2e_callgraph_java_version.sh ${{matrix.java}}

internal/callgraph/language/java/soot_handler.go

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ func (sh SootHandler) downloadCompressedSootWrapper(fs ioFs.IFileSystem, zipFile
7878
version,
7979
".zip",
8080
}, "")
81+
fmt.Println("URL=", fullURLFile)
8182

8283
client := http.Client{
8384
CheckRedirect: func(r *http.Request, via []*http.Request) error {
@@ -101,10 +102,11 @@ func (sh SootHandler) downloadCompressedSootWrapper(fs ioFs.IFileSystem, zipFile
101102
func (sh SootHandler) GetSootWrapper(version string, fs ioFs.IFileSystem, arc ioFs.IArchive) (string, error) {
102103
versionInt, err := strconv.Atoi(version)
103104
if err != nil {
104-
return "", fmt.Errorf("error when trying to convert java version string to int")
105+
return "", fmt.Errorf("could not convert version to int")
105106
}
106-
if versionInt < 11 {
107-
return "", fmt.Errorf("lowest supported version for running callgraph generation is 11")
107+
version, err = sh.getSootHandlerJavaVersion(versionInt)
108+
if err != nil {
109+
return "", err
108110
}
109111
debrickedDir := ".debricked"
110112
if _, err := fs.Stat(debrickedDir); fs.IsNotExist(err) {
@@ -119,17 +121,24 @@ func (sh SootHandler) GetSootWrapper(version string, fs ioFs.IFileSystem, arc io
119121
return "", err
120122
}
121123
if _, err := fs.Stat(path); fs.IsNotExist(err) {
122-
if versionInt >= 21 {
124+
if version == "21" {
123125
return sh.initializeSootWrapper(fs, debrickedDir)
124126
}
125-
if versionInt >= 17 {
126-
version = "17"
127-
} else {
128-
version = "11"
129-
} // Handling correct jar to install
130127

131128
return path, sh.downloadSootWrapper(arc, fs, path, version)
132129
}
133130

134131
return path, nil
135132
}
133+
134+
func (sh SootHandler) getSootHandlerJavaVersion(version int) (string, error) {
135+
if version >= 21 {
136+
return "21", nil
137+
} else if version >= 17 {
138+
return "17", nil
139+
} else if version >= 11 {
140+
return "11", nil
141+
} else {
142+
return "", fmt.Errorf("lowest supported version for running callgraph generation is 11")
143+
}
144+
}

internal/callgraph/language/java/soot_handler_test.go

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,3 +173,58 @@ func TestGetSootWrapperMkdirError(t *testing.T) {
173173
assert.Error(t, err)
174174
assert.Equal(t, err.Error(), errString)
175175
}
176+
177+
func TestGetSootHandlerJavaVersion(t *testing.T) {
178+
sootHandler := SootHandler{}
179+
tests := []struct {
180+
name string
181+
version int
182+
expectedVersion string
183+
expectError bool
184+
}{
185+
{
186+
name: "Unsupported version",
187+
version: 8,
188+
expectedVersion: "",
189+
expectError: true,
190+
},
191+
{
192+
name: "Version 11",
193+
version: 11,
194+
expectedVersion: "11",
195+
expectError: false,
196+
},
197+
{
198+
name: "Version 17",
199+
version: 17,
200+
expectedVersion: "17",
201+
expectError: false,
202+
},
203+
{
204+
name: "Version 21",
205+
version: 21,
206+
expectedVersion: "21",
207+
expectError: false,
208+
},
209+
{
210+
name: "Version not int",
211+
version: 12,
212+
expectedVersion: "11",
213+
expectError: false,
214+
},
215+
}
216+
217+
for _, tt := range tests {
218+
t.Run(tt.name, func(t *testing.T) {
219+
result, err := sootHandler.getSootHandlerJavaVersion(tt.version)
220+
221+
if tt.expectError {
222+
assert.Error(t, err)
223+
assert.Empty(t, result)
224+
} else {
225+
assert.NoError(t, err)
226+
assert.NotEmpty(t, result)
227+
}
228+
})
229+
}
230+
}

internal/cmd/callgraph/callgraph.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ func RunE(callgraph callgraph.IGenerator) func(_ *cobra.Command, args []string)
127127
}
128128

129129
configs := []conf.IConfig{}
130-
version := viper.GetString("version")
130+
version := viper.GetString("cliVersion")
131131

132132
for _, language := range languages {
133133
configs = append(configs, conf.NewConfig(language, args, map[string]string{}, !buildDisabled, languageMap[language], version))

internal/cmd/root/root.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Complete documentation is available at https://docs.debricked.com/tools-and-inte
2929
},
3030
Version: version,
3131
}
32+
viper.Set("cliVersion", version)
3233
viper.SetEnvPrefix("DEBRICKED")
3334
viper.AutomaticEnv()
3435
viper.MustBindEnv(AccessTokenFlag)

internal/cmd/root/root_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func TestNewRootCmd(t *testing.T) {
3535
}
3636
}
3737
assert.Truef(t, match, "failed to assert that flag was present: "+OldAccessTokenFlag)
38-
assert.Len(t, viperKeys, 22)
38+
assert.Len(t, viperKeys, 23)
3939
}
4040

4141
func TestPreRun(t *testing.T) {

scripts/install.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ if ! command -v git &> /dev/null
44
then
55
echo -e "Failed to find git, thus also the version. Version will be set to v0.0.0"
66
fi
7-
version=${VERSION:-$(git symbolic-ref -q --short HEAD || git describe --tags --exact-match)}
7+
version=${DEBRICKED_VERSION:-$(git symbolic-ref -q --short HEAD || git describe --tags --exact-match)}
88
ldFlags="-X main.version=${version}"
99
go install -ldflags "${ldFlags}" ./cmd/debricked
1010
go generate -v -x ./cmd/debricked

0 commit comments

Comments
 (0)