github.com/ladydascalie/elvish@v0.0.0-20170703214355-2964dd3ece7f/util/fullnames_test.go (about)

     1  package util
     2  
     3  import (
     4  	"os/exec"
     5  	"reflect"
     6  	"sort"
     7  	"strings"
     8  	"testing"
     9  )
    10  
    11  func ls(dir string) []string {
    12  	// BUG: will fail if there are filenames containing newlines.
    13  	output, err := exec.Command("ls", dir).Output()
    14  	mustOK(err)
    15  	names := strings.Split(strings.Trim(string(output), "\n"), "\n")
    16  	for i := range names {
    17  		names[i] = dir + names[i]
    18  	}
    19  	sort.Strings(names)
    20  	return names
    21  }
    22  
    23  func TestFullNames(t *testing.T) {
    24  	for _, dir := range []string{"/", "/usr/"} {
    25  		wantNames := ls(dir)
    26  		names := FullNames(dir)
    27  		if !reflect.DeepEqual(names, wantNames) {
    28  			t.Errorf(`FullNames(%q) -> %s, want %s`, dir, names, wantNames)
    29  		}
    30  	}
    31  }