@@ -23,9 +23,11 @@ import (
23
23
"net/http"
24
24
"net/http/httptest"
25
25
"os"
26
+ "os/exec"
26
27
"path"
27
28
"path/filepath"
28
29
"reflect"
30
+ "runtime"
29
31
"strings"
30
32
"testing"
31
33
@@ -4705,6 +4707,34 @@ func Test_parseFromRegistry(t *testing.T) {
4705
4707
resourceDownloadErr := "failed to pull stack from registry .*"
4706
4708
badDevfileErr := "error parsing devfile because of non-compliant data"
4707
4709
4710
+ // set invalidRegistryURLErr to expect server misbehaving
4711
+ // if distribution is Ubuntu Server
4712
+ if runtime .GOOS == "linux" {
4713
+ cmd := exec .Command ("lsb_release" , "-a" )
4714
+ var stdout , stderr bytes.Buffer
4715
+ cmd .Stdout = & stdout
4716
+ cmd .Stderr = & stderr
4717
+
4718
+ if err := cmd .Run (); err != nil {
4719
+ t .Errorf ("Test_parseFromRegistry() unexpected error while fetching distribution: %v" , stderr .String ())
4720
+ return
4721
+ }
4722
+
4723
+ lsbrelease := stdout .String ()
4724
+ if strings .Contains (lsbrelease , "Ubuntu" ) {
4725
+ cmd := exec .Command ("dpkg" , "-l" , "ubuntu-desktop" )
4726
+ cmd .Stderr = & stderr
4727
+
4728
+ // This command will fail if Ubuntu Server
4729
+ if err := cmd .Run (); err != nil && ! strings .Contains (stderr .String (), "dpkg-query: no packages found matching ubuntu-desktop" ) {
4730
+ t .Errorf ("Test_parseFromRegistry() unexpected error while fetching distribution: %v" , stderr .String ())
4731
+ return
4732
+ } else if err != nil {
4733
+ invalidRegistryURLErr = "Get .* dial tcp: lookup http on .*: server misbehaving"
4734
+ }
4735
+ }
4736
+ }
4737
+
4708
4738
testServer := httptest .NewUnstartedServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
4709
4739
var data []byte
4710
4740
var err error
0 commit comments