From ef6683b5503fa2a7ce1a13a5e28427a7c95e7851 Mon Sep 17 00:00:00 2001 From: Zack Scholl Date: Wed, 23 Feb 2022 07:25:13 -0800 Subject: [PATCH] add more tests --- src/croc/croc_test.go | 76 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/src/croc/croc_test.go b/src/croc/croc_test.go index 5c61ef2b..b55249e9 100644 --- a/src/croc/croc_test.go +++ b/src/croc/croc_test.go @@ -2,6 +2,8 @@ package croc import ( "os" + "path" + "path/filepath" "sync" "testing" "time" @@ -85,6 +87,80 @@ func TestCrocReadme(t *testing.T) { wg.Wait() } +func TestCrocSymlink(t *testing.T) { + pathName := "../link-in-folder" + defer os.RemoveAll(pathName) + os.MkdirAll(pathName, 0755) + os.Symlink("../../README.md", filepath.Join(pathName, "README.link")) + + log.Debug("setting up sender") + sender, err := New(Options{ + IsSender: true, + SharedSecret: "8124-testingthecroc", + Debug: true, + RelayAddress: "localhost:8281", + RelayPorts: []string{"8281"}, + RelayPassword: "pass123", + Stdout: false, + NoPrompt: true, + DisableLocal: true, + Curve: "siec", + Overwrite: true, + }) + if err != nil { + panic(err) + } + + log.Debug("setting up receiver") + receiver, err := New(Options{ + IsSender: false, + SharedSecret: "8124-testingthecroc", + Debug: true, + RelayAddress: "localhost:8281", + RelayPassword: "pass123", + Stdout: false, + NoPrompt: true, + DisableLocal: true, + Curve: "siec", + Overwrite: true, + }) + if err != nil { + panic(err) + } + + var wg sync.WaitGroup + wg.Add(2) + go func() { + filesInfo, errGet := GetFilesInfo([]string{pathName}) + if errGet != nil { + t.Errorf("failed to get minimal info: %v", errGet) + } + err := sender.Send(filesInfo) + if err != nil { + t.Errorf("send failed: %v", err) + } + wg.Done() + }() + time.Sleep(100 * time.Millisecond) + go func() { + err := receiver.Receive() + if err != nil { + t.Errorf("receive failed: %v", err) + } + wg.Done() + }() + + wg.Wait() + + s, err := filepath.EvalSymlinks(path.Join(pathName, "README.link")) + if s != "../../README.md" { + t.Errorf("symlink failed to transfer in folder") + } + if err != nil { + t.Errorf("symlink transfer failed: %s", err.Error()) + } +} + func TestCrocLocal(t *testing.T) { log.SetLevel("trace") defer os.Remove("LICENSE")