go-openapi / spec

openapi specification object model
Apache License 2.0
389 stars 98 forks source link

Fix failed windows tests that depends on cwd #160

Closed youyuanwu closed 2 years ago

youyuanwu commented 2 years ago

Signed-off-by: Youyuan Wu youyuanwu@outlook.com

Failed tests on master:

--- FAIL: TestNormalizer_NormalizeBase (0.00s)
    --- FAIL: TestNormalizer_NormalizeBase//base/sub/file.json (0.00s)
        normalizer_test.go:[41](https://github.com/go-openapi/spec/runs/7816924392?check_suite_focus=true#step:4:42)8: 
                Error Trace:    normalizer_test.go:418
                Error:          Not equal: 
                                expected: "file:///c:/base/sub/file.json"
                                actual  : "file:///d:/base/sub/file.json"

                                Diff:
                                --- Expected
                                +++ Actual
                                @@ -1 +1 @@
                                -file:///c:/base/sub/file.json
                                +file:///d:/base/sub/file.json
                Test:           TestNormalizer_NormalizeBase//base/sub/file.json
                Messages:       for base "/base/sub/file.json"
    --- FAIL: TestNormalizer_NormalizeBase//.. (0.00s)
        normalizer_test.go:418: 
                Error Trace:    normalizer_test.go:418
                Error:          Not equal: 
                                expected: "file:///c:"
                                actual  : "file:///d:"

                                Diff:
                                --- Expected
                                +++ Actual
                                @@ -1 +1 @@
                                -file:///c:
                                +file:///d:
                Test:           TestNormalizer_NormalizeBase//..
                Messages:       for base "/.."
    --- FAIL: TestNormalizer_NormalizeBase////folder//subfolder///file.json/ (0.00s)
        normalizer_test.go:418: 
                Error Trace:    normalizer_test.go:418
                Error:          Not equal: 
                                expected: "file:///c:/folder/subfolder/file.json"
                                actual  : "file:///d:/folder/subfolder/file.json"

                                Diff:
                                --- Expected
                                +++ Actual
                                @@ -1 +1 @@
                                -file:///c:/folder/subfolder/file.json
                                +file:///d:/folder/subfolder/file.json
                Test:           TestNormalizer_NormalizeBase////folder//subfolder///file.json/
                Messages:       for base "///folder//subfolder///file.json/"

The cause of failure is that the tests were running in D:/ drive in stead of C:/ drive in github action. Not sure the filepath.abs() changed behaviour or not. i.e. if it always returns C:/.

The fix is to change tests to have expected value matching the current drive.