androidbp: Test valueToString

Change-Id: I358cf4bb020fc4db14792e2cdffc18bc2f89f4d4
This commit is contained in:
Dan Willemsen 2015-06-23 23:34:49 -07:00
parent 00a36d3f21
commit f33877b0e9
3 changed files with 98 additions and 1 deletions

View File

@ -194,6 +194,9 @@ bootstrap_go_binary {
"androidbp/cmd/androidbp.go",
"androidbp/cmd/soong.go",
],
testSrcs: [
"androidbp/cmd/androidbp_test.go",
],
deps: [
"blueprint-parser",
],

View File

@ -0,0 +1,59 @@
package main
import (
"strings"
"testing"
bpparser "github.com/google/blueprint/parser"
)
var valueTestCases = []struct {
blueprint string
expected string
}{
{
blueprint: `test = false`,
expected: `false`,
},
{
blueprint: `test = Variable`,
expected: `$(Variable)`,
},
{
blueprint: `test = "string"`,
expected: `string`,
},
{
blueprint: `test = ["a", "b"]`,
expected: `\
a \
b`,
},
{
blueprint: `test = Var + "b"`,
expected: `$(Var)b`,
},
{
blueprint: `test = ["a"] + ["b"]`,
expected: `\
a\
b`,
},
}
func TestValueToString(t *testing.T) {
for _, testCase := range valueTestCases {
blueprint, errs := bpparser.Parse("", strings.NewReader(testCase.blueprint), nil)
if len(errs) > 0 {
t.Errorf("Failed to read blueprint: %q", errs)
}
str := valueToString(blueprint.Defs[0].(*bpparser.Assignment).Value)
if str != testCase.expected {
t.Errorf("test case: %s", testCase.blueprint)
t.Errorf("unexpected difference:")
t.Errorf(" expected: %s", testCase.expected)
t.Errorf(" got: %s", str)
}
}
}

View File

@ -65,11 +65,46 @@ rule g.bootstrap.test
# Factory: github.com/google/blueprint/bootstrap.func·003
# Defined: build/soong/Android.bp:191:1
build .bootstrap/androidbp/test/androidbp.a: g.bootstrap.gc $
${g.bootstrap.srcDir}/build/soong/androidbp/cmd/androidbp.go $
${g.bootstrap.srcDir}/build/soong/androidbp/cmd/soong.go $
${g.bootstrap.srcDir}/build/soong/androidbp/cmd/androidbp_test.go | $
${g.bootstrap.gcCmd} $
.bootstrap/blueprint-parser/pkg/github.com/google/blueprint/parser.a
incFlags = -I .bootstrap/blueprint-parser/pkg
pkgPath = androidbp
default .bootstrap/androidbp/test/androidbp.a
build .bootstrap/androidbp/test/test.go: g.bootstrap.gotestmain $
${g.bootstrap.srcDir}/build/soong/androidbp/cmd/androidbp_test.go | $
${g.bootstrap.goTestMainCmd}
pkg = androidbp
default .bootstrap/androidbp/test/test.go
build .bootstrap/androidbp/test/test.a: g.bootstrap.gc $
.bootstrap/androidbp/test/test.go | $
.bootstrap/androidbp/test/androidbp.a
incFlags = -I .bootstrap/androidbp/test
pkgPath = main
default .bootstrap/androidbp/test/test.a
build .bootstrap/androidbp/test/test: g.bootstrap.link $
.bootstrap/androidbp/test/test.a | ${g.bootstrap.linkCmd}
libDirFlags = -L .bootstrap/androidbp/test -L .bootstrap/blueprint-parser/pkg
default .bootstrap/androidbp/test/test
build .bootstrap/androidbp/test/test.passed: g.bootstrap.test $
.bootstrap/androidbp/test/test
pkg = androidbp
pkgSrcDir = ${g.bootstrap.srcDir}/build/soong/androidbp/cmd
default .bootstrap/androidbp/test/test.passed
build .bootstrap/androidbp/obj/androidbp.a: g.bootstrap.gc $
${g.bootstrap.srcDir}/build/soong/androidbp/cmd/androidbp.go $
${g.bootstrap.srcDir}/build/soong/androidbp/cmd/soong.go | $
${g.bootstrap.gcCmd} $
.bootstrap/blueprint-parser/pkg/github.com/google/blueprint/parser.a
.bootstrap/blueprint-parser/pkg/github.com/google/blueprint/parser.a $
|| .bootstrap/androidbp/test/test.passed
incFlags = -I .bootstrap/blueprint-parser/pkg
pkgPath = androidbp
default .bootstrap/androidbp/obj/androidbp.a