Re-enable prebuilt_test

Use a temporary directory as the build directory during tests so files
don't get written to the source tree.

Also add a few more tests for prebuilts with no file specified.

Bug: 31800129
Test: m -j, make sure .soong.environment is not written to the source tree
Change-Id: I623bc114b2ff534c8df9fb3ce273e804711f8f05
diff --git a/android/prebuilt_test.go b/android/prebuilt_test.go
index 92d6481..311f821 100644
--- a/android/prebuilt_test.go
+++ b/android/prebuilt_test.go
@@ -15,6 +15,8 @@
 package android
 
 import (
+	"io/ioutil"
+	"os"
 	"testing"
 
 	"github.com/google/blueprint"
@@ -81,9 +83,43 @@
 			}`,
 		prebuilt: true,
 	},
+	{
+		name: "prebuilt no file not preferred",
+		modules: `
+			source {
+				name: "bar",
+			}
+			
+			prebuilt {
+				name: "bar",
+				prefer: false,
+			}`,
+		prebuilt: false,
+	},
+	{
+		name: "prebuilt no file preferred",
+		modules: `
+			source {
+				name: "bar",
+			}
+			
+			prebuilt {
+				name: "bar",
+				prefer: true,
+			}`,
+		prebuilt: false,
+	},
 }
 
 func TestPrebuilts(t *testing.T) {
+	buildDir, err := ioutil.TempDir("", "soong_prebuilt_test")
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer os.RemoveAll(buildDir)
+
+	config := TestConfig(buildDir)
+
 	for _, test := range prebuiltsTests {
 		t.Run(test.name, func(t *testing.T) {
 			ctx := NewContext()
@@ -98,8 +134,6 @@
 					` + test.modules),
 			})
 
-			config := TestConfig()
-
 			_, errs := ctx.ParseBlueprintsFiles("Blueprints")
 			fail(t, errs)
 			_, errs = ctx.PrepareBuildActions(config)
@@ -129,7 +163,6 @@
 			}
 		})
 	}
-
 }
 
 type prebuiltModule struct {