]> ruderich.org/simon Gitweb - safcm/safcm.git/blobdiff - cmd/safcm/main_sync_test.go
Update copyright years
[safcm/safcm.git] / cmd / safcm / main_sync_test.go
index 16aad166cb5c854842453f89659901dfd959f3d7..c0f9818d0f2f427317d5c006744fe8d7ab83067e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2021  Simon Ruderich
+// Copyright (C) 2021-2023  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
@@ -26,7 +26,7 @@ import (
        "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"
 )
 
@@ -35,7 +35,7 @@ func TestSyncSshEndToEnd(t *testing.T) {
        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
@@ -56,7 +56,7 @@ func TestSyncSshEndToEnd(t *testing.T) {
        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++ {
@@ -348,6 +348,20 @@ executed 2 command(s):
        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 {