oomichi / try-kubernetes

12 stars 5 forks source link

logger_test.go fails #89

Closed oomichi closed 5 years ago

oomichi commented 5 years ago

k/k の e2elog 移行のPRで想定外の単体テストが失敗。 原因を調査する。 成功したときと失敗したときの diff

 Ran 3 of 3 Specs in 0.004 seconds
 FAIL! -- 0 Passed | 3 Failed | 0 Pending | 0 Skipped
-PASS
-ok     k8s.io/kubernetes/test/e2e/framework/log        0.024s
+--- FAIL: TestFailureOutput (0.00s)
+    logger_test.go:104:
+        stack in 1
+        Expected
+            <string>: "...o:1361
+            k8s...."
+        to equal               |
+            <string>: "...o:1362
+            k8s...."
+FAIL
+exit status 1
+FAIL   k8s.io/kubernetes/test/e2e/framework/log        0.025s

下記の単体テストコード

 97         // Compare individual fields. Comparing the slices leads to unreadable error output when there is any mismatch.
 98         g.Expect(len(actual)).To(gomega.Equal(len(expected)), "%d entries in %v", len(expected), actual)
 99         for i, a := range actual {
100                 b := expected[i]
101                 g.Expect(a.name).To(gomega.Equal(b.name), "name in %d", i)
102                 g.Expect(a.output).To(gomega.Equal(b.output), "output in %d", i)
103                 g.Expect(a.failure).To(gomega.Equal(b.failure), "failure in %d", i)
104                 g.Expect(a.stack).To(gomega.Equal(b.stack), "stack in %d", i)
105         }
106 }
oomichi commented 5 years ago

ログ上 stack in 1 となっているので、i が 1 のときに失敗している。 a.stack の生情報は以下の通り

       util.go:1361
        k8s.io/kubernetes/test/e2e/framework.ExpectNoError()
                util.go:1355
        k8s.io/kubernetes/test/e2e/framework/log_test.glob..func1.4()
                logger_test.go:49
        k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync()
                logger_test.go:65
oomichi commented 5 years ago

util.go の行数が想定と異なっている? 本PRで util.go から e2elog "k8s.io/kubernetes/test/e2e/framework/log" を削除している。

oomichi commented 5 years ago

以下のように単体テストを変更することで対応した

-                       stack: "\tutil.go:1362\nk8s.io/kubernetes/test/e2e/framework.ExpectNoError()\n\tutil.go:1356\nk8s.io/kubernetes/test/e2e/framework/log_test.glob..func1.4()\n\tlogger_test.go:49\nk8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync()\n\tlogger_test.go:65\n",
+                       stack: "\tutil.go:1361\nk8s.io/kubernetes/test/e2e/framework.ExpectNoError()\n\tutil.go:1355\nk8s.io/kubernetes/test/e2e/framework/log_test.glob..func1.4()\n\tlogger_test.go:49\nk8s.io/kubernetes/vendor/github.com/onsi/ginkgo/internal/leafnodes.(*runner).runSync()\n\tlogger_test.go:65\n",