44 "bufio"
55 "bytes"
66 "context"
7- "encoding/json"
87 "fmt"
98 "iter"
109 "log"
@@ -13,7 +12,6 @@ import (
1312 "os"
1413 "os/exec"
1514 "path/filepath"
16- "strconv"
1715 "strings"
1816 "testing"
1917 "time"
@@ -87,50 +85,13 @@ func buildDebVersion(t *testing.T, storePath, tagVersion, arch string) {
8785 }
8886}
8987
90- func genMajorTag (t * testing.T , tag string ) string {
91- t .Helper ()
92-
93- parts := strings .Split (tag , "." )
94- last := parts [len (parts )- 1 ]
95-
96- lastNum , _ := strconv .Atoi (strings .TrimPrefix (last , "v" ))
97- lastNum ++
98-
99- parts [len (parts )- 1 ] = strconv .Itoa (lastNum )
100- newTag := strings .Join (parts , "." )
101-
102- return newTag
103- }
104-
105- func genMinorTag (t * testing.T , tag string ) string {
106- t .Helper ()
107-
108- parts := strings .Split (tag , "." )
109- last := parts [len (parts )- 1 ]
110-
111- lastNum , _ := strconv .Atoi (strings .TrimPrefix (last , "v" ))
112- if lastNum > 0 {
113- lastNum --
114- }
115-
116- parts [len (parts )- 1 ] = strconv .Itoa (lastNum )
117- newTag := strings .Join (parts , "." )
118-
119- if ! strings .HasPrefix (newTag , "v" ) {
120- newTag = "v" + newTag
121- }
122- return newTag
123- }
124-
125- func buildDockerImage (t * testing.T , dockerfile , name , arch , dockerGid string ) {
88+ func buildDockerImage (t * testing.T , dockerfile , name , arch string ) {
12689 t .Helper ()
12790
12891 archArg := fmt .Sprintf ("ARCH=%s" , arch )
129- gidArg := fmt .Sprintf ("DOCKER_GID=%s" , dockerGid )
13092
13193 cmd := exec .Command ("docker" , "build" ,
13294 "--build-arg" , archArg ,
133- "--build-arg" , gidArg ,
13495 "-t" , name , "-f" , dockerfile , "." )
13596 // Capture both stdout and stderr
13697 var out bytes.Buffer
@@ -157,10 +118,9 @@ func startDockerContainer(t *testing.T, containerName string, containerImageName
157118 "-p" , "8800:8800" ,
158119 "--privileged" ,
159120 "--cgroupns=host" ,
160- //"--network", "host",
161121 "-v" , "/sys/fs/cgroup:/sys/fs/cgroup:rw" ,
162- "-v" , "/var/run/docker.sock:/var/run /docker.sock" ,
163- "-e" , "DOCKER_HOST=unix:///var/run /docker.sock" ,
122+ "-v" , "/var/run/docker.sock:/host /docker.sock" ,
123+ "-e" , "DOCKER_HOST=unix:///host /docker.sock" ,
164124 "--name" , containerName ,
165125 containerImageName ,
166126 )
@@ -171,47 +131,6 @@ func startDockerContainer(t *testing.T, containerName string, containerImageName
171131
172132}
173133
174- func getAppCliVersion (t * testing.T , containerName string ) string {
175- t .Helper ()
176-
177- cmd := exec .Command (
178- "docker" , "exec" ,
179- "--user" , "arduino" ,
180- containerName ,
181- "arduino-app-cli" , "version" , "--format" , "json" ,
182- )
183- output , err := cmd .CombinedOutput ()
184- if err != nil {
185- log .Fatalf ("command failed: %v\n Output: %s" , err , output )
186- }
187-
188- var version struct {
189- Version string `json:"version"`
190- DaemonVersion string `json:"daemon_version"`
191- }
192- err = json .Unmarshal (output , & version )
193- require .NoError (t , err )
194- // TODO to enable after 0.6.7
195- // require.Equal(t, version.Version, version.DaemonVersion, "client and daemon versions should match")
196- require .NotEmpty (t , version .Version )
197- return version .Version
198-
199- }
200-
201- func runSystemUpdate (t * testing.T , containerName string ) {
202- t .Helper ()
203-
204- cmd := exec .Command (
205- "docker" , "exec" ,
206- "--user" , "arduino" ,
207- containerName ,
208- "arduino-app-cli" , "system" , "update" , "--yes" ,
209- )
210- output , err := cmd .CombinedOutput ()
211- require .NoError (t , err , "system update failed: %s" , output )
212- t .Logf ("system update output: %s" , output )
213- }
214-
215134func stopDockerContainer (t * testing.T , containerName string ) {
216135 t .Helper ()
217136
@@ -224,30 +143,6 @@ func stopDockerContainer(t *testing.T, containerName string) {
224143
225144}
226145
227- func putUpdateRequest (t * testing.T , host string ) {
228-
229- t .Helper ()
230-
231- url := fmt .Sprintf ("http://%s/v1/system/update/apply" , host )
232-
233- req , err := http .NewRequest (http .MethodPut , url , nil )
234- if err != nil {
235- log .Fatalf ("Error creating request: %v" , err )
236- }
237-
238- req .Header .Set ("Content-Type" , "application/json" )
239-
240- client := & http.Client {}
241- resp , err := client .Do (req )
242- if err != nil {
243- log .Fatalf ("Error sending request: %v" , err )
244- }
245- defer resp .Body .Close ()
246-
247- require .Equal (t , 202 , resp .StatusCode )
248-
249- }
250-
251146func NewSSEClient (ctx context.Context , method , url string ) iter.Seq2 [Event , error ] {
252147 return func (yield func (Event , error ) bool ) {
253148 req , err := http .NewRequestWithContext (ctx , http .MethodGet , url , nil )
@@ -320,17 +215,21 @@ func waitForPort(t *testing.T, host string, timeout time.Duration) { // nolint:u
320215
321216func runAppStart (t * testing.T , containerName , appName string ) {
322217 t .Helper ()
323- appCommand := fmt .Sprintf ("arduino-app-cli app start %s" , appName )
218+ fixCmd := exec .Command ("docker" , "exec" , containerName ,
219+ "chmod" , "666" , "/host/docker.sock" )
220+
221+ outputFix , errFix := fixCmd .CombinedOutput ()
222+ require .NoError (t , errFix , "Failed to chmod docker socket: %s" , outputFix )
223+ appCommand := fmt .Sprintf ("/usr/bin/arduino-app-cli app start %s" , appName )
324224
325225 cmd := exec .Command (
326226 "docker" , "exec" ,
327227 containerName ,
328- "su" , "-" , "arduino" ,
329- "-c" , appCommand ,
228+ "su" , "arduino" , "-c" , appCommand ,
330229 )
331230
332231 output , err := cmd .CombinedOutput ()
333- require .NoError (t , err , "start command filed : %s" , output )
232+ require .NoError (t , err , "Start command failed : %s" , output )
334233 t .Logf ("Output comando 'start': %s" , output )
335234}
336235
0 commit comments