diff options
Diffstat (limited to 'android/bazel_handler_test.go')
-rw-r--r-- | android/bazel_handler_test.go | 86 |
1 files changed, 52 insertions, 34 deletions
diff --git a/android/bazel_handler_test.go b/android/bazel_handler_test.go index dc2261c62..c85727217 100644 --- a/android/bazel_handler_test.go +++ b/android/bazel_handler_test.go @@ -1,6 +1,7 @@ package android import ( + "encoding/json" "os" "path/filepath" "reflect" @@ -8,6 +9,8 @@ import ( "testing" "android/soong/bazel/cquery" + "google.golang.org/protobuf/proto" + analysis_v2_proto "prebuilts/bazel/common/proto/analysis_v2" ) var testConfig = TestConfig("out", nil, "", nil) @@ -65,52 +68,56 @@ func TestInvokeBazelPopulatesBuildStatements(t *testing.T) { var testCases = []testCase{ {` { - "artifacts": [ - { "id": 1, "pathFragmentId": 1 }, - { "id": 2, "pathFragmentId": 2 }], - "actions": [{ - "targetId": 1, - "actionKey": "x", - "mnemonic": "x", - "arguments": ["touch", "foo"], - "inputDepSetIds": [1], - "outputIds": [1], - "primaryOutputId": 1 - }], - "depSetOfFiles": [ - { "id": 1, "directArtifactIds": [1, 2] }], - "pathFragments": [ - { "id": 1, "label": "one" }, - { "id": 2, "label": "two" }] + "artifacts": [ + { "id": 1, "path_fragment_id": 1 }, + { "id": 2, "path_fragment_id": 2 }], + "actions": [{ + "target_Id": 1, + "action_Key": "x", + "mnemonic": "x", + "arguments": ["touch", "foo"], + "input_dep_set_ids": [1], + "output_Ids": [1], + "primary_output_id": 1 + }], + "dep_set_of_files": [ + { "id": 1, "direct_artifact_ids": [1, 2] }], + "path_fragments": [ + { "id": 1, "label": "one" }, + { "id": 2, "label": "two" }] }`, "cd 'test/exec_root' && rm -f 'one' && touch foo", }, {` { - "artifacts": [ - { "id": 1, "pathFragmentId": 10 }, - { "id": 2, "pathFragmentId": 20 }], - "actions": [{ - "targetId": 100, - "actionKey": "x", - "mnemonic": "x", - "arguments": ["bogus", "command"], - "outputIds": [1, 2], - "primaryOutputId": 1 - }], - "pathFragments": [ - { "id": 10, "label": "one", "parentId": 30 }, - { "id": 20, "label": "one.d", "parentId": 30 }, - { "id": 30, "label": "parent" }] + "artifacts": [ + { "id": 1, "path_fragment_id": 10 }, + { "id": 2, "path_fragment_id": 20 }], + "actions": [{ + "target_Id": 100, + "action_Key": "x", + "mnemonic": "x", + "arguments": ["bogus", "command"], + "output_Ids": [1, 2], + "primary_output_id": 1 + }], + "path_fragments": [ + { "id": 10, "label": "one", "parent_id": 30 }, + { "id": 20, "label": "one.d", "parent_id": 30 }, + { "id": 30, "label": "parent" }] }`, `cd 'test/exec_root' && rm -f 'parent/one' && bogus command && sed -i'' -E 's@(^|\s|")bazel-out/@\1test/bazel_out/@g' 'parent/one.d'`, }, } for i, testCase := range testCases { + data, err := JsonToActionGraphContainer(testCase.input) + if err != nil { + t.Error(err) + } bazelContext, _ := testBazelContext(t, map[bazelCommand]string{ - bazelCommand{command: "aquery", expression: "deps(@soong_injection//mixed_builds:buildroot)"}: testCase.input}) + bazelCommand{command: "aquery", expression: "deps(@soong_injection//mixed_builds:buildroot)"}: string(data)}) - err := bazelContext.InvokeBazel(testConfig) + err = bazelContext.InvokeBazel(testConfig) if err != nil { t.Fatalf("testCase #%d: did not expect error invoking Bazel, but got %s", i+1, err) } @@ -194,3 +201,14 @@ func testBazelContext(t *testing.T, bazelCommandResults map[bazelCommand]string) requests: map[cqueryKey]bool{}, }, p.soongOutDir } + +// Transform the json format to ActionGraphContainer +func JsonToActionGraphContainer(inputString string) ([]byte, error) { + var aqueryProtoResult analysis_v2_proto.ActionGraphContainer + err := json.Unmarshal([]byte(inputString), &aqueryProtoResult) + if err != nil { + return []byte(""), err + } + data, _ := proto.Marshal(&aqueryProtoResult) + return data, err +} |