-// 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 <http://www.gnu.org/licenses/>.
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright (C) 2021-2024 Simon Ruderich
package main_test
"testing"
"time"
- ft "ruderich.org/simon/safcm/cmd/safcm-remote/sync/filetest"
+ ft "ruderich.org/simon/safcm/remote/sync/filetest"
"ruderich.org/simon/safcm/testutil"
)
if err != nil {
t.Fatal(err)
}
- defer os.Chdir(cwd)
+ defer os.Chdir(cwd) //nolint:errcheck
var suffix string
// Needs different options in sshd_config
if err != nil {
t.Fatal(err)
}
- defer sshCmd.Process.Kill()
+ defer sshCmd.Process.Kill() //nolint:errcheck
// Wait until SSH server is ready (up to 30 seconds)
for i := 0; i < 30; i++ {
logRegexp := regexp.MustCompile(`^\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} `)
detectedRegexp := regexp.MustCompile(`detected_\S+`)
+ t.Run("error before connection is established", func(t *testing.T) {
+ // Fake $PATH so safcm cannot find the `ssh` binary.
+ path := os.Getenv("PATH")
+ os.Setenv("PATH", "")
+ defer os.Setenv("PATH", path)
+
+ cmd := exec.Command("../../../../../safcm",
+ "sync", "-n", "no-settings.example.org")
+ _, err := cmd.CombinedOutput()
+ if err == nil {
+ t.Errorf("err = nil")
+ }
+ })
+
for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
if tc.remove {