| // Copyright 2019 The Chromium OS Authors. All rights reserved. |
| // 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) |
| } |
| } |
| } |