diff --git a/androidbp/cmd/androidbp_test.go b/androidbp/cmd/androidbp_test.go
new file mode 100644
index 0000000..178ea57
--- /dev/null
+++ b/androidbp/cmd/androidbp_test.go
@@ -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)
+		}
+	}
+}
