aboutsummaryrefslogtreecommitdiff
path: root/compiler_wrapper/command_test.go
blob: 031872c8a1e33996fe620c2cd296f688e12abf01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Copyright 2019 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package main

import (
	"reflect"
	"sort"
	"testing"
)

func TestMergeEnvValues(t *testing.T) {
	testData := []struct {
		values  []string
		updates []string
		result  []string
	}{
		{[]string{}, []string{}, []string{}},
		{[]string{"A=1"}, []string{}, []string{"A=1"}},
		{[]string{"A=1=2=3"}, []string{}, []string{"A=1=2=3"}},
		{[]string{}, []string{"A=1"}, []string{"A=1"}},
		{[]string{}, []string{"A=1=2=3"}, []string{"A=1=2=3"}},
		{[]string{"A=1"}, []string{"A=2"}, []string{"A=2"}},
		{[]string{"A="}, []string{}, []string{"A="}},
		{[]string{"A="}, []string{"A=2"}, []string{"A=2"}},
		{[]string{"A=1"}, []string{"A="}, []string{}},
		{[]string{}, []string{"A=1", "A="}, []string{}},
		{[]string{}, []string{"A=1", "A=", "A=2"}, []string{"A=2"}},
		{[]string{"A=1", "B=2"}, []string{"C=3", "D=4"}, []string{"A=1", "B=2", "C=3", "D=4"}},
	}
	for _, tt := range testData {
		result := mergeEnvValues(tt.values, tt.updates)
		sort.Strings(result)
		if !reflect.DeepEqual(tt.result, result) {
			t.Errorf("unexpected result: %s", result)
		}
	}
}