From 6b322ad2d32b1525ad01611f0d6ad8d803f5f6f0 Mon Sep 17 00:00:00 2001 From: Erik Hollensbe Date: Fri, 29 Aug 2014 13:04:34 -0700 Subject: [PATCH] builder/parser: fix handling of empty strings as the only argument. Docker-DCO-1.1-Signed-off-by: Erik Hollensbe (github: erikh) --- builder/parser/parser.go | 6 ++++-- builder/parser/parser_test.go | 5 ++++- builder/parser/testfiles/brimstone-docker-consul/result | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/builder/parser/parser.go b/builder/parser/parser.go index 8315412bd7..ff60f4d825 100644 --- a/builder/parser/parser.go +++ b/builder/parser/parser.go @@ -81,8 +81,10 @@ func parseLine(line string) (string, *Node, error) { return "", nil, err } - node.Next = sexp - node.Attributes = attrs + if sexp.Value != "" || sexp.Next != nil || sexp.Children != nil { + node.Next = sexp + node.Attributes = attrs + } return "", node, nil } diff --git a/builder/parser/parser_test.go b/builder/parser/parser_test.go index 871da477c1..0d56f7e454 100644 --- a/builder/parser/parser_test.go +++ b/builder/parser/parser_test.go @@ -1,6 +1,7 @@ package parser import ( + "fmt" "io/ioutil" "os" "path/filepath" @@ -69,7 +70,9 @@ func TestTestData(t *testing.T) { t.Fatalf("Error reading %s's result file: %s", dir.Name(), err.Error()) } - if ast.Dump() != string(content) { + if ast.Dump()+"\n" != string(content) { + fmt.Fprintln(os.Stderr, ast.Dump()) + fmt.Fprintln(os.Stderr, string(content)) t.Fatalf("%s: AST dump of dockerfile does not match result", dir.Name()) } diff --git a/builder/parser/testfiles/brimstone-docker-consul/result b/builder/parser/testfiles/brimstone-docker-consul/result index 86723dde7f..3f7a6f413e 100644 --- a/builder/parser/testfiles/brimstone-docker-consul/result +++ b/builder/parser/testfiles/brimstone-docker-consul/result @@ -1,5 +1,5 @@ (from "brimstone/ubuntu:14.04") -(cmd "") +(cmd) (entrypoint "/usr/bin/consul" "agent" "-server" "-data-dir=/consul" "-client=0.0.0.0" "-ui-dir=/webui") (expose "8500" "8600" "8400" "8301" "8302") (run "apt-get update && apt-get install -y unzip wget && apt-get clean && rm -rf /var/lib/apt/lists")