X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=cmd%2Fsafcm%2Fsync_test.go;h=d4b0e7ce9c8c0653d6b887c2fd40ce9a246902ca;hb=a975ad977fa48ac38a1955041cc559e77aa4d968;hp=80b1589072ace73792c3bd51723b02320d996c61;hpb=4473e968425319e6beae558643bb047a6b01c17a;p=safcm%2Fsafcm.git diff --git a/cmd/safcm/sync_test.go b/cmd/safcm/sync_test.go index 80b1589..d4b0e7c 100644 --- a/cmd/safcm/sync_test.go +++ b/cmd/safcm/sync_test.go @@ -1,30 +1,14 @@ -// 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 main import ( - "bytes" "fmt" - "log" "os" "testing" - "ruderich.org/simon/safcm" "ruderich.org/simon/safcm/cmd/safcm/config" - "ruderich.org/simon/safcm/rpc" "ruderich.org/simon/safcm/testutil" ) @@ -33,7 +17,7 @@ func TestHostsToSync(t *testing.T) { if err != nil { t.Fatal(err) } - defer os.Chdir(cwd) + defer os.Chdir(cwd) //nolint:errcheck err = os.Chdir("testdata/project") if err != nil { @@ -194,354 +178,3 @@ are only available after the hosts were contacted. }) } } - -func TestLogEvent(t *testing.T) { - // Restore default logger - defer log.SetFlags(log.Flags()) - defer log.SetOutput(os.Stderr) - - tests := []struct { - name string - event Event - level safcm.LogLevel - isTTY bool - exp string - expFailed bool - }{ - - { - "Error", - Event{ - Error: fmt.Errorf("fake error"), - }, - safcm.LogDebug3, - false, - "[error] [fake-host] fake error\n", - true, - }, - { - "Error (tty)", - Event{ - Error: fmt.Errorf("fake error"), - }, - safcm.LogDebug3, - true, - "[error] [\x1b[31mfake-host\x1b[0m] fake error\n", - true, - }, - { - "Error: escape", - Event{ - Error: fmt.Errorf("\x00"), - }, - safcm.LogDebug3, - false, - "[error] [fake-host] \\x00\n", - true, - }, - { - "Error: escape (tty)", - Event{ - Error: fmt.Errorf("\x00"), - }, - safcm.LogDebug3, - true, - "[error] [\x1b[31mfake-host\x1b[0m] \x1b[35m\\x00\x1b[0m\n", - true, - }, - - { - "Log: info", - Event{ - Log: Log{ - Level: safcm.LogInfo, - Text: "info log", - }, - }, - safcm.LogDebug3, - false, - "[info] [fake-host] info log\n", - false, - }, - { - "Log: info (tty)", - Event{ - Log: Log{ - Level: safcm.LogInfo, - Text: "info log", - }, - }, - safcm.LogDebug3, - true, - "[info] [fake-host] info log\n", - false, - }, - { - "Log: verbose", - Event{ - Log: Log{ - Level: safcm.LogVerbose, - Text: "verbose log", - }, - }, - safcm.LogDebug3, - false, - "[verbose] [fake-host] verbose log\n", - false, - }, - { - "Log: debug", - Event{ - Log: Log{ - Level: safcm.LogDebug, - Text: "debug log", - }, - }, - safcm.LogDebug3, - false, - "[debug] [fake-host] debug log\n", - false, - }, - { - "Log: debug2", - Event{ - Log: Log{ - Level: safcm.LogDebug2, - Text: "debug2 log", - }, - }, - safcm.LogDebug3, - false, - "[debug2] [fake-host] debug2 log\n", - false, - }, - { - "Log: debug3", - Event{ - Log: Log{ - Level: safcm.LogDebug3, - Text: "debug3 log", - }, - }, - safcm.LogDebug3, - false, - fmt.Sprintf("[INVALID=%d] [fake-host] debug3 log\n", - safcm.LogDebug3), - false, - }, - { - "Log: debug3 (tty)", - Event{ - Log: Log{ - Level: safcm.LogDebug3, - Text: "debug3 log", - }, - }, - safcm.LogDebug3, - true, - fmt.Sprintf("[INVALID=%d] [\x1b[31mfake-host\x1b[0m] debug3 log\n", - safcm.LogDebug3), - false, - }, - { - "Log: escape", - Event{ - Log: Log{ - Level: safcm.LogInfo, - Text: "\x00", - }, - }, - safcm.LogDebug3, - false, - "[info] [fake-host] \\x00\n", - false, - }, - { - "Log: escape (tty)", - Event{ - Log: Log{ - Level: safcm.LogInfo, - Text: "\x00", - }, - }, - safcm.LogDebug3, - true, - "[info] [fake-host] \x1b[35m\\x00\x1b[0m\n", - false, - }, - - { - "ConnEvent: stderr", - Event{ - ConnEvent: rpc.ConnEvent{ - Type: rpc.ConnEventStderr, - Data: "fake stderr", - }, - }, - safcm.LogDebug3, - false, - "[stderr] [fake-host] fake stderr\n", - false, - }, - { - "ConnEvent: stderr (tty)", - Event{ - ConnEvent: rpc.ConnEvent{ - Type: rpc.ConnEventStderr, - Data: "fake stderr", - }, - }, - safcm.LogDebug3, - true, - "[stderr] [fake-host] fake stderr\n", - false, - }, - { - "ConnEvent: debug", - Event{ - ConnEvent: rpc.ConnEvent{ - Type: rpc.ConnEventDebug, - Data: "conn debug", - }, - }, - safcm.LogDebug3, - false, - "[debug3] [fake-host] conn debug\n", - false, - }, - { - "ConnEvent: upload", - Event{ - ConnEvent: rpc.ConnEvent{ - Type: rpc.ConnEventUpload, - }, - }, - safcm.LogDebug3, - false, - "[info] [fake-host] remote helper upload in progress\n", - false, - }, - { - "ConnEvent: upload (ignored)", - Event{ - ConnEvent: rpc.ConnEvent{ - Type: rpc.ConnEventUpload, - }, - }, - safcm.LogError, - false, - "", - false, - }, - { - "ConnEvent: invalid", - Event{ - ConnEvent: rpc.ConnEvent{ - Type: 42, - Data: "invalid", - }, - }, - safcm.LogError, - false, - "[INVALID=42] [fake-host] invalid\n", - false, - }, - { - "ConnEvent: invalid (tty)", - Event{ - ConnEvent: rpc.ConnEvent{ - Type: 42, - Data: "invalid", - }, - }, - safcm.LogError, - true, - "[INVALID=42] [\x1b[31mfake-host\x1b[0m] invalid\n", - false, - }, - { - "ConnEvent: escape", - Event{ - ConnEvent: rpc.ConnEvent{ - Type: rpc.ConnEventStderr, - Data: "\x00", - }, - }, - safcm.LogDebug3, - false, - "[stderr] [fake-host] \\x00\n", - false, - }, - { - "ConnEvent: escape (tty)", - Event{ - ConnEvent: rpc.ConnEvent{ - Type: rpc.ConnEventDebug, - Data: "\x01", - }, - }, - safcm.LogDebug3, - true, - "[debug3] [fake-host] \x1b[35m\\x01\x1b[0m\n", - false, - }, - - { - "Escaped", - Event{ - Log: Log{ - Level: safcm.LogInfo, - Text: "\x00", - }, - Escaped: true, - }, - safcm.LogDebug3, - false, - "[info] [fake-host] \x00\n", - false, - }, - { - "Escaped (tty)", - Event{ - Log: Log{ - Level: safcm.LogInfo, - Text: "\x00", - }, - Escaped: true, - }, - safcm.LogDebug3, - true, - "[info] [fake-host] \x00\n", - false, - }, - - { - "empty (invalid)", - Event{}, - safcm.LogDebug3, - false, - "[INVALID=0] [fake-host] \n", - false, - }, - } - - for _, tc := range tests { - t.Run(tc.name, func(t *testing.T) { - tc.event.Host = &config.Host{ - Name: "fake-host", - } - - var buf bytes.Buffer - log.SetFlags(0) - log.SetOutput(&buf) - - var failed bool - logEvent(tc.event, tc.level, tc.isTTY, &failed) - - testutil.AssertEqual(t, "log", - buf.String(), tc.exp) - testutil.AssertEqual(t, "failed", - failed, tc.expFailed) - }) - } -}