diff options
Diffstat (limited to 'tests/defaults')
| -rw-r--r-- | tests/defaults/main_test.go | 37 | 
1 files changed, 37 insertions, 0 deletions
| diff --git a/tests/defaults/main_test.go b/tests/defaults/main_test.go index 849aa69..8733c8b 100644 --- a/tests/defaults/main_test.go +++ b/tests/defaults/main_test.go @@ -2,10 +2,16 @@  package defaults  import ( +	"encoding/json" +	"fmt" +	"net"  	"os"  	"os/exec" +	"syscall"  	"testing" +	"time" +	"github.com/rfjakob/gocryptfs/internal/ctlsock"  	"github.com/rfjakob/gocryptfs/tests/test_helpers"  ) @@ -35,3 +41,34 @@ func Test1980Tar(t *testing.T) {  		t.Errorf("Wrong mtime: %d", m)  	}  } + +func TestCtlSock(t *testing.T) { +	cDir := test_helpers.InitFS(t) +	pDir := cDir + ".mnt" +	sock := cDir + ".sock" +	test_helpers.MountOrFatal(t, cDir, pDir, "-ctlsock="+sock, "-extpass", "echo test") +	defer test_helpers.UnmountPanic(pDir) +	conn, err := net.DialTimeout("unix", sock, 1*time.Second) +	if err != nil { +		t.Fatal(err) +	} +	defer conn.Close() +	conn.SetDeadline(time.Now().Add(time.Second)) +	msg := []byte(`{"EncryptPath": "foobar"}`) +	_, err = conn.Write(msg) +	if err != nil { +		t.Fatal(err) +	} +	buf := make([]byte, 2*syscall.PathMax) +	n, err := conn.Read(buf) +	if err != nil { +		t.Fatal(err) +	} +	buf = buf[:n] +	var response ctlsock.ResponseStruct +	json.Unmarshal(buf, &response) +	if response.Result == "" || response.ErrNo != 0 { +		fmt.Printf("%s\n", string(buf)) +		t.Errorf("got an error reply") +	} +} | 
