|
@@ -1,132 +0,0 @@
|
|
-package main
|
|
|
|
-
|
|
|
|
-import (
|
|
|
|
- "fmt"
|
|
|
|
- "io/ioutil"
|
|
|
|
- "os"
|
|
|
|
- "testing"
|
|
|
|
- "time"
|
|
|
|
-
|
|
|
|
- "github.com/docker/libnetwork/testutils"
|
|
|
|
-)
|
|
|
|
-
|
|
|
|
-const dnetCommandName = "dnet"
|
|
|
|
-
|
|
|
|
-var origStdOut = os.Stdout
|
|
|
|
-
|
|
|
|
-func TestDnetDaemonCustom(t *testing.T) {
|
|
|
|
- if !testutils.IsRunningInContainer() {
|
|
|
|
- t.Skip("This test must run inside a container ")
|
|
|
|
- }
|
|
|
|
- customPort := 4567
|
|
|
|
- doneChan := make(chan bool)
|
|
|
|
- go func() {
|
|
|
|
- args := []string{dnetCommandName, "-d", fmt.Sprintf("-H=:%d", customPort)}
|
|
|
|
- executeDnetCommand(t, args, true)
|
|
|
|
- doneChan <- true
|
|
|
|
- }()
|
|
|
|
-
|
|
|
|
- select {
|
|
|
|
- case <-doneChan:
|
|
|
|
- t.Fatal("dnet Daemon is not supposed to exit")
|
|
|
|
- case <-time.After(3 * time.Second):
|
|
|
|
- args := []string{dnetCommandName, "-d=false", fmt.Sprintf("-H=:%d", customPort), "-D", "network", "ls"}
|
|
|
|
- executeDnetCommand(t, args, true)
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-func TestDnetDaemonInvalidCustom(t *testing.T) {
|
|
|
|
- if !testutils.IsRunningInContainer() {
|
|
|
|
- t.Skip("This test must run inside a container ")
|
|
|
|
- }
|
|
|
|
- customPort := 4668
|
|
|
|
- doneChan := make(chan bool)
|
|
|
|
- go func() {
|
|
|
|
- args := []string{dnetCommandName, "-d=true", fmt.Sprintf("-H=:%d", customPort)}
|
|
|
|
- executeDnetCommand(t, args, true)
|
|
|
|
- doneChan <- true
|
|
|
|
- }()
|
|
|
|
-
|
|
|
|
- select {
|
|
|
|
- case <-doneChan:
|
|
|
|
- t.Fatal("dnet Daemon is not supposed to exit")
|
|
|
|
- case <-time.After(3 * time.Second):
|
|
|
|
- args := []string{dnetCommandName, "-d=false", "-H=:6669", "-D", "network", "ls"}
|
|
|
|
- executeDnetCommand(t, args, false)
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-func TestDnetDaemonInvalidParams(t *testing.T) {
|
|
|
|
- if !testutils.IsRunningInContainer() {
|
|
|
|
- t.Skip("This test must run inside a container ")
|
|
|
|
- }
|
|
|
|
- args := []string{dnetCommandName, "-d=false", "-H=tcp:/127.0.0.1:8080"}
|
|
|
|
- executeDnetCommand(t, args, false)
|
|
|
|
-
|
|
|
|
- args = []string{dnetCommandName, "-d=false", "-H=unix://var/run/dnet.sock"}
|
|
|
|
- executeDnetCommand(t, args, false)
|
|
|
|
-
|
|
|
|
- args = []string{dnetCommandName, "-d=false", "-H=", "-l=invalid"}
|
|
|
|
- executeDnetCommand(t, args, false)
|
|
|
|
-
|
|
|
|
- args = []string{dnetCommandName, "-d=false", "-H=", "-l=error", "invalid"}
|
|
|
|
- executeDnetCommand(t, args, false)
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-func TestDnetDefaultsWithFlags(t *testing.T) {
|
|
|
|
- if !testutils.IsRunningInContainer() {
|
|
|
|
- t.Skip("This test must run inside a container ")
|
|
|
|
- }
|
|
|
|
- doneChan := make(chan bool)
|
|
|
|
- go func() {
|
|
|
|
- args := []string{dnetCommandName, "-d=true", "-H=", "-l=error"}
|
|
|
|
- executeDnetCommand(t, args, true)
|
|
|
|
- doneChan <- true
|
|
|
|
- }()
|
|
|
|
-
|
|
|
|
- select {
|
|
|
|
- case <-doneChan:
|
|
|
|
- t.Fatal("dnet Daemon is not supposed to exit")
|
|
|
|
- case <-time.After(3 * time.Second):
|
|
|
|
- args := []string{dnetCommandName, "-d=false", "network", "create", "-d=null", "test"}
|
|
|
|
- executeDnetCommand(t, args, true)
|
|
|
|
-
|
|
|
|
- args = []string{dnetCommandName, "-d=false", "-D", "network", "ls"}
|
|
|
|
- executeDnetCommand(t, args, true)
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-func TestDnetMain(t *testing.T) {
|
|
|
|
- if !testutils.IsRunningInContainer() {
|
|
|
|
- t.Skip("This test must run inside a container ")
|
|
|
|
- }
|
|
|
|
- customPort := 4568
|
|
|
|
- doneChan := make(chan bool)
|
|
|
|
- go func() {
|
|
|
|
- args := []string{dnetCommandName, "-d=true", "-h=false", fmt.Sprintf("-H=:%d", customPort)}
|
|
|
|
- os.Args = args
|
|
|
|
- main()
|
|
|
|
- doneChan <- true
|
|
|
|
- }()
|
|
|
|
- select {
|
|
|
|
- case <-doneChan:
|
|
|
|
- t.Fatal("dnet Daemon is not supposed to exit")
|
|
|
|
- case <-time.After(2 * time.Second):
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-func executeDnetCommand(t *testing.T, args []string, shouldSucced bool) {
|
|
|
|
- _, w, _ := os.Pipe()
|
|
|
|
- os.Stdout = w
|
|
|
|
-
|
|
|
|
- os.Args = args
|
|
|
|
- err := dnetCommand(ioutil.Discard, ioutil.Discard)
|
|
|
|
- if shouldSucced && err != nil {
|
|
|
|
- os.Stdout = origStdOut
|
|
|
|
- t.Fatalf("cli [%v] must succeed, but failed with an error : %v", args, err)
|
|
|
|
- } else if !shouldSucced && err == nil {
|
|
|
|
- os.Stdout = origStdOut
|
|
|
|
- t.Fatalf("cli [%v] must fail, but succeeded with an error : %v", args, err)
|
|
|
|
- }
|
|
|
|
- os.Stdout = origStdOut
|
|
|
|
-}
|
|
|