package dbus import ( "bufio" "io/ioutil" "os" "os/exec" "testing" ) func TestTcpNonceConnection(t *testing.T) { addr, process := startDaemon(t, ` session nonce-tcp: ANONYMOUS `) defer process.Kill() conn, err := Connect(addr, WithAuth(AuthAnonymous())) if err != nil { t.Fatal(err) } if err = conn.Close(); err != nil { t.Fatal(err) } } // startDaemon starts a dbus-daemon instance with the given config // and returns its address string and underlying process. func startDaemon(t *testing.T, config string) (string, *os.Process) { cfg, err := ioutil.TempFile("", "") if err != nil { t.Fatal(err) } defer os.Remove(cfg.Name()) if _, err = cfg.Write([]byte(config)); err != nil { t.Fatal(err) } cmd := exec.Command("dbus-daemon", "--nofork", "--print-address", "--config-file", cfg.Name()) cmd.Stderr = os.Stderr out, err := cmd.StdoutPipe() if err != nil { t.Fatal(err) } if err = cmd.Start(); err != nil { t.Fatal(err) } r := bufio.NewReader(out) l, _, err := r.ReadLine() if err != nil { cmd.Process.Kill() t.Fatal(err) } return string(l), cmd.Process }