X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=cmd%2Fsafcm%2Fconfig%2Fhosts_test.go;h=f88d8d718cd8fc5a0547dc73bdff86d8a806d590;hb=HEAD;hp=49f4d5692da40bc96afeedc760fb53b84dfc0bad;hpb=8fcd43d8f2b15b62f819a1ea41dcd91ac3194f0b;p=safcm%2Fsafcm.git diff --git a/cmd/safcm/config/hosts_test.go b/cmd/safcm/config/hosts_test.go index 49f4d56..f88d8d7 100644 --- a/cmd/safcm/config/hosts_test.go +++ b/cmd/safcm/config/hosts_test.go @@ -1,17 +1,5 @@ -// Copyright (C) 2021 Simon Ruderich -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . +// SPDX-License-Identifier: GPL-3.0-or-later +// Copyright (C) 2021-2024 Simon Ruderich package config @@ -19,10 +7,9 @@ import ( "fmt" "os" "path/filepath" - "reflect" "testing" - "github.com/google/go-cmp/cmp" + "ruderich.org/simon/safcm/testutil" ) func TestLoadHosts(t *testing.T) { @@ -30,7 +17,7 @@ func TestLoadHosts(t *testing.T) { if err != nil { t.Fatal(err) } - defer os.Chdir(cwd) + defer os.Chdir(cwd) //nolint:errcheck sliceToHosts := func(hosts []*Host) *Hosts { res := &Hosts{ @@ -65,6 +52,11 @@ func TestLoadHosts(t *testing.T) { nil, }, + { + "../testdata/host-invalid-duplicate", + nil, + fmt.Errorf("hosts.yaml: host \"host1.example.org\": host name already exists"), + }, { "../testdata/host-invalid-all", nil, @@ -83,21 +75,15 @@ func TestLoadHosts(t *testing.T) { } for _, tc := range tests { - err := os.Chdir(filepath.Join(cwd, tc.path)) - if err != nil { - t.Fatal(err) - } + t.Run(tc.path, func(t *testing.T) { + err := os.Chdir(filepath.Join(cwd, tc.path)) + if err != nil { + t.Fatal(err) + } - res, err := LoadHosts() - - if !reflect.DeepEqual(tc.exp, res) { - t.Errorf("%s: res: %s", tc.path, - cmp.Diff(tc.exp, res)) - } - // Ugly but the simplest way to compare errors (including nil) - if fmt.Sprintf("%s", err) != fmt.Sprintf("%s", tc.expErr) { - t.Errorf("%s: err = %#v, want %#v", - tc.path, err, tc.expErr) - } + res, err := LoadHosts() + testutil.AssertEqual(t, "res", res, tc.exp) + testutil.AssertErrorEqual(t, "err", err, tc.expErr) + }) } }