[pkg-go] Bug#848055: golang-github-go-chef-chef: FTBFS randomly (failing tests)

Logan Rosen logan at ubuntu.com
Sun Jan 24 21:33:53 GMT 2021


Control: tags -1 patch fixed-upstream
Control: forwarded -1 https://github.com/go-chef/chef/issues/87

Hi,

In Ubuntu, the attached patch was applied to achieve the following:

  * d/p/fix_intermittent_test_failures.patch: Cherrypick upstream Git commit
    to fix intermittent test failures causing FTBFS.

Thanks for considering the patch.

Logan
-------------- next part --------------
diff -Nru golang-github-go-chef-chef-0.0.1+git20161023.60.deb8c38/debian/patches/fix_intermittent_test_failures.patch golang-github-go-chef-chef-0.0.1+git20161023.60.deb8c38/debian/patches/fix_intermittent_test_failures.patch
--- golang-github-go-chef-chef-0.0.1+git20161023.60.deb8c38/debian/patches/fix_intermittent_test_failures.patch	1969-12-31 19:00:00.000000000 -0500
+++ golang-github-go-chef-chef-0.0.1+git20161023.60.deb8c38/debian/patches/fix_intermittent_test_failures.patch	2021-01-24 16:27:19.000000000 -0500
@@ -0,0 +1,104 @@
+From b8a5b9cbb7b472eba5c1e2759aa6c288b8251de1 Mon Sep 17 00:00:00 2001
+From: markgibbons <mark.gibbons at nordstrom.com>
+Date: Sat, 7 Dec 2019 07:10:13 -0800
+Subject: [PATCH] Fix the intermittent failures in the String tests
+
+---
+ .circleci/config.yml |  2 +-
+ client_test.go       |  8 +++++---
+ databag_test.go      |  7 +++++--
+ environment_test.go  | 11 +++++++----
+ role_test.go         | 10 ++++++----
+ 5 files changed, 24 insertions(+), 14 deletions(-)
+
+--- a/client_test.go
++++ b/client_test.go
+@@ -36,15 +36,17 @@
+ 	mux.HandleFunc("/clients", func(w http.ResponseWriter, r *http.Request) {
+ 		fmt.Fprintf(w, `{"client1": "http://localhost/clients/client1", "client2": "http://localhost/clients/client2"}`)
+ 	})
+-
+ 	response, err := client.Clients.List()
+ 	if err != nil {
+ 		t.Errorf("Clients.List returned error: %v", err)
+ 	}
+ 
++	// The order printed by the String function is not defined
+ 	want := "client1 => http://localhost/clients/client1\nclient2 => http://localhost/clients/client2\n"
+-	if response.String() != want {
+-		t.Errorf("Clients.List returned:\n%+v\nwant:\n%+v\n", response.String(), want)
++	want2 := "client2 => http://localhost/clients/client2\nclient1 => http://localhost/clients/client1\n"
++	rstr := response.String()
++	if rstr != want && rstr != want2 {
++		t.Errorf("Clients.List returned:\n%+v\nwant:\n%+v\n", rstr, want)
+ 	}
+ }
+ 
+--- a/databag_test.go
++++ b/databag_test.go
+@@ -157,8 +157,11 @@
+ 
+ func TestDataBagsService_DataBagListResultString(t *testing.T) {
+ 	e := &DataBagListResult{"bag1": "http://localhost/data/bag1", "bag2": "http://localhost/data/bag2"}
++	// The output order is not guarenteed by the String function, check for either order
+ 	want := "bag1 => http://localhost/data/bag1\nbag2 => http://localhost/data/bag2\n"
+-	if e.String() != want {
+-		t.Errorf("DataBagListResult.String returned:\n%+v\nwant:\n%+v\n", e.String(), want)
++	want2 := "bag2 => http://localhost/data/bag2\nbag1 => http://localhost/data/bag1\n"
++	ebag := e.String()
++	if ebag != want && ebag != want2 {
++		t.Errorf("DataBagListResult.String returned:\n%+v\nwant:\n%+v\n", ebag, want)
+ 	}
+ }
+--- a/environment_test.go
++++ b/environment_test.go
+@@ -143,16 +143,19 @@
+ 
+ func TestEnvironmentsService_EnvironmentListResultString(t *testing.T) {
+ 	e := &EnvironmentResult{"_default": "https://api.opscode.com/organizations/org_name/environments/_default", "webserver": "https://api.opscode.com/organizations/org_name/environments/webserver"}
++	estr := e.String()
+ 	want := "_default => https://api.opscode.com/organizations/org_name/environments/_default\nwebserver => https://api.opscode.com/organizations/org_name/environments/webserver\n"
+-	if e.String() != want {
+-		t.Errorf("EnvironmentResult.String returned:\n%+v\nwant:\n%+v\n", e.String(), want)
++	want2 := "webserver => https://api.opscode.com/organizations/org_name/environments/webserver\n_default => https://api.opscode.com/organizations/org_name/environments/_default\n"
++	if estr != want && estr != want2 {
++		t.Errorf("EnvironmentResult.String returned:\n%+v\nwant:\n%+v\n", estr, want)
+ 	}
+ }
+ 
+ func TestEnvironmentsService_EnvironmentCreateResultString(t *testing.T) {
+ 	e := &EnvironmentResult{"uri": "http://localhost:4000/environments/dev"}
++	estr := e.String()
+ 	want := "uri => http://localhost:4000/environments/dev\n"
+-	if e.String() != want {
+-		t.Errorf("EnvironmentResult.String returned %+v, want %+v", e.String(), want)
++	if estr != want {
++		t.Errorf("EnvironmentResult.String returned %+v, want %+v", estr, want)
+ 	}
+ }
+--- a/role_test.go
++++ b/role_test.go
+@@ -178,17 +178,19 @@
+ 
+ func TestRolesService_RoleListResultString(t *testing.T) {
+ 	r := &RoleListResult{"foo": "http://localhost:4000/roles/foo"}
++	rstr := r.String()
+ 	want := "foo => http://localhost:4000/roles/foo\n"
+-	if r.String() != want {
+-		t.Errorf("RoleListResult.String returned %+v, want %+v", r.String(), want)
++	if rstr != want {
++		t.Errorf("RoleListResult.String returned %+v, want %+v", rstr, want)
+ 	}
+ }
+ 
+ func TestRolesService_RoleCreateResultString(t *testing.T) {
+ 	r := &RoleCreateResult{"uri": "http://localhost:4000/roles/webserver"}
++	rstr := r.String()
+ 	want := "uri => http://localhost:4000/roles/webserver\n"
+-	if r.String() != want {
+-		t.Errorf("RoleCreateResult.String returned %+v, want %+v", r.String(), want)
++	if rstr != want {
++		t.Errorf("RoleCreateResult.String returned %+v, want %+v", rstr, want)
+ 	}
+ }
+ 
diff -Nru golang-github-go-chef-chef-0.0.1+git20161023.60.deb8c38/debian/patches/series golang-github-go-chef-chef-0.0.1+git20161023.60.deb8c38/debian/patches/series
--- golang-github-go-chef-chef-0.0.1+git20161023.60.deb8c38/debian/patches/series	2016-11-22 13:02:28.000000000 -0500
+++ golang-github-go-chef-chef-0.0.1+git20161023.60.deb8c38/debian/patches/series	2021-01-24 16:27:01.000000000 -0500
@@ -1 +1,2 @@
 standalone_ctdk_libs.patch
+fix_intermittent_test_failures.patch


More information about the Pkg-go-maintainers mailing list