xref: /aosp_15_r20/cts/tests/mediapc/requirements/requirements_test.go (revision b7c941bb3fa97aba169d73cee0bed2de8ac964bf)
1*b7c941bbSAndroid Build Coastguard Worker// Copyright (C) 2024 The Android Open Source Project
2*b7c941bbSAndroid Build Coastguard Worker//
3*b7c941bbSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*b7c941bbSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*b7c941bbSAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*b7c941bbSAndroid Build Coastguard Worker//
7*b7c941bbSAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*b7c941bbSAndroid Build Coastguard Worker//
9*b7c941bbSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*b7c941bbSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*b7c941bbSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*b7c941bbSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*b7c941bbSAndroid Build Coastguard Worker// limitations under the License.
14*b7c941bbSAndroid Build Coastguard Worker
15*b7c941bbSAndroid Build Coastguard Workerpackage requirements
16*b7c941bbSAndroid Build Coastguard Worker
17*b7c941bbSAndroid Build Coastguard Workerimport (
18*b7c941bbSAndroid Build Coastguard Worker	"bytes"
19*b7c941bbSAndroid Build Coastguard Worker	"testing"
20*b7c941bbSAndroid Build Coastguard Worker
21*b7c941bbSAndroid Build Coastguard Worker	_ "embed"
22*b7c941bbSAndroid Build Coastguard Worker)
23*b7c941bbSAndroid Build Coastguard Worker
24*b7c941bbSAndroid Build Coastguard Worker// MPC Requirements data from requirements.txtpb
25*b7c941bbSAndroid Build Coastguard Worker//
26*b7c941bbSAndroid Build Coastguard Worker//go:embed requirements.binbp
27*b7c941bbSAndroid Build Coastguard Workervar reqBinary []byte
28*b7c941bbSAndroid Build Coastguard Worker
29*b7c941bbSAndroid Build Coastguard Workerfunc TestGensrc(t *testing.T) {
30*b7c941bbSAndroid Build Coastguard Worker	reqList, err := UnmarshalRequirementList(reqBinary)
31*b7c941bbSAndroid Build Coastguard Worker	if err != nil {
32*b7c941bbSAndroid Build Coastguard Worker		t.Fatalf("Failed to unmarshal reqBinary: %v", err)
33*b7c941bbSAndroid Build Coastguard Worker	}
34*b7c941bbSAndroid Build Coastguard Worker
35*b7c941bbSAndroid Build Coastguard Worker	tests := []struct {
36*b7c941bbSAndroid Build Coastguard Worker		tmpl string
37*b7c941bbSAndroid Build Coastguard Worker		want string
38*b7c941bbSAndroid Build Coastguard Worker	}{
39*b7c941bbSAndroid Build Coastguard Worker		{
40*b7c941bbSAndroid Build Coastguard Worker			tmpl: "{{- $first := index .ReqList.GetRequirements 0 -}}First requirement is [{{$first.GetId}}].",
41*b7c941bbSAndroid Build Coastguard Worker			want: "First requirement is [5.1/H-1-1]."},
42*b7c941bbSAndroid Build Coastguard Worker		{
43*b7c941bbSAndroid Build Coastguard Worker			tmpl: "UpperCamelCase foo_bar -> {{UpperCamelCase \"foo_bar\"}}",
44*b7c941bbSAndroid Build Coastguard Worker			want: "UpperCamelCase foo_bar -> FooBar",
45*b7c941bbSAndroid Build Coastguard Worker		},
46*b7c941bbSAndroid Build Coastguard Worker	}
47*b7c941bbSAndroid Build Coastguard Worker
48*b7c941bbSAndroid Build Coastguard Worker	for _, tc := range tests {
49*b7c941bbSAndroid Build Coastguard Worker		var b bytes.Buffer
50*b7c941bbSAndroid Build Coastguard Worker		err = Gensrc(tc.tmpl, reqList, &b)
51*b7c941bbSAndroid Build Coastguard Worker		if err != nil {
52*b7c941bbSAndroid Build Coastguard Worker			t.Fatalf("Gensrc(%v, ...) failed: %v", tc.tmpl, err)
53*b7c941bbSAndroid Build Coastguard Worker		}
54*b7c941bbSAndroid Build Coastguard Worker		got := b.String()
55*b7c941bbSAndroid Build Coastguard Worker		if got != tc.want {
56*b7c941bbSAndroid Build Coastguard Worker			t.Errorf("Gensrc(%q, ...) = %q, want %q", tc.tmpl, got, tc.want)
57*b7c941bbSAndroid Build Coastguard Worker		}
58*b7c941bbSAndroid Build Coastguard Worker	}
59*b7c941bbSAndroid Build Coastguard Worker}
60