From c0d4159d7719fb94b4b421415b8f367c6f61c68e Mon Sep 17 00:00:00 2001 From: DCCooper <1866858@gmail.com> Date: Mon, 8 Feb 2021 10:22:33 +0800 Subject: [PATCH 02/10] enhancement: add go test for RUN panic problem Signed-off-by: DCCooper <1866858@gmail.com> --- builder/dockerfile/parser/parser_test.go | 18 ++++++++++++++---- .../testfiles/preprocess/run_with_directive | 2 ++ 2 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 builder/dockerfile/parser/testfiles/preprocess/run_with_directive diff --git a/builder/dockerfile/parser/parser_test.go b/builder/dockerfile/parser/parser_test.go index f0cce1e9..3da5bea6 100644 --- a/builder/dockerfile/parser/parser_test.go +++ b/builder/dockerfile/parser/parser_test.go @@ -69,8 +69,9 @@ func TestPreProcess(t *testing.T) { func TestFormat(t *testing.T) { type testcase struct { - name string - expect int + name string + expect int + wantErr bool } var testcases = []testcase{ { @@ -89,6 +90,10 @@ func TestFormat(t *testing.T) { name: "yum_config", expect: 8, }, + { + name: "run_with_directive", + wantErr: true, + }, } for _, tc := range testcases { @@ -103,8 +108,13 @@ func TestFormat(t *testing.T) { d, err := newDirective(bytes.NewReader(buf.Bytes())) assert.NilError(t, err) lines, err := format(rows, d) - assert.NilError(t, err) - assert.Equal(t, len(lines), tc.expect) + if (err != nil) != tc.wantErr { + t.Errorf("Testing failed. Expected: %v, got: %v", tc.wantErr, err) + } + if !tc.wantErr { + assert.NilError(t, err, file) + assert.Equal(t, len(lines), tc.expect) + } }) } } diff --git a/builder/dockerfile/parser/testfiles/preprocess/run_with_directive b/builder/dockerfile/parser/testfiles/preprocess/run_with_directive new file mode 100644 index 00000000..3f3465d3 --- /dev/null +++ b/builder/dockerfile/parser/testfiles/preprocess/run_with_directive @@ -0,0 +1,2 @@ +FROM scratch +RUN \ -- 2.27.0