github.com/aarzilli/tools@v0.0.0-20151123112009-0d27094f75e0/os/fsi/tests/dirwalk_test.go (about)

     1  // +build dirwalk
     2  // go test -tags=dirwalk
     3  
     4  package tests
     5  
     6  import (
     7  	"bytes"
     8  	"os"
     9  	"runtime"
    10  	"testing"
    11  	"time"
    12  )
    13  
    14  func TestExtendedDirectoryAndFiles(t *testing.T) {
    15  
    16  	testRoot := "c:\\temp"
    17  	if runtime.GOOS != "windows" {
    18  		testRoot = "/tmp"
    19  	}
    20  
    21  	bb := new(bytes.Buffer)
    22  	msg := ""
    23  	_ = bb
    24  
    25  	os.Chdir(testRoot)
    26  	pwd, _ := os.Getwd()
    27  	if pwd == testRoot {
    28  		os.RemoveAll(pwd)
    29  	}
    30  
    31  	Fss, c := initFileSystems()
    32  	defer c.Close()
    33  
    34  	// Fss = Fss[0:1]
    35  
    36  	for _, fs := range Fss {
    37  
    38  		wpf(os.Stdout, "-----created fs %v %v-----\n", fs.Name(), fs.String())
    39  
    40  		bb, msg = CreateSys(fs)
    41  		if msg != "" {
    42  			wpf(os.Stdout, msg+"\n")
    43  			wpf(os.Stdout, bb.String())
    44  			t.Errorf("%v", msg)
    45  		}
    46  
    47  		bb, msg = RetrieveByReadDir(fs)
    48  		if msg != "" {
    49  			wpf(os.Stdout, msg+"\n")
    50  			wpf(os.Stdout, bb.String())
    51  			t.Errorf("%v", msg)
    52  		}
    53  
    54  		bb, msg = RetrieveByQuery(fs)
    55  		if msg != "" {
    56  			wpf(os.Stdout, msg+"\n")
    57  			wpf(os.Stdout, bb.String())
    58  			t.Errorf("%v", msg)
    59  		}
    60  
    61  		bb, msg = WalkDirs(fs)
    62  		if msg != "" {
    63  			wpf(os.Stdout, msg+"\n")
    64  			wpf(os.Stdout, bb.String())
    65  			t.Errorf("%v", msg)
    66  		}
    67  
    68  		bb, msg = RemoveSubtree(fs)
    69  		if msg != "" {
    70  			wpf(os.Stdout, msg+"\n")
    71  			wpf(os.Stdout, bb.String())
    72  			t.Errorf("%v", msg)
    73  		}
    74  
    75  		// After removal, give time,
    76  		// to remove directories from index too.
    77  		// Alternatively, the walkFunc should not return
    78  		// err == datastore.ErrNoSuchEntity
    79  		time.Sleep(5 * time.Millisecond)
    80  
    81  		bb, msg = WalkDirs(fs)
    82  		if msg != "" {
    83  			wpf(os.Stdout, msg+"\n")
    84  			wpf(os.Stdout, bb.String())
    85  			t.Errorf("%v", msg)
    86  		}
    87  
    88  		bb, msg = RetrieveByQuery(fs)
    89  		if msg != "" {
    90  			wpf(os.Stdout, msg+"\n")
    91  			wpf(os.Stdout, bb.String())
    92  			t.Errorf("%v", msg)
    93  		}
    94  
    95  		bb, msg = RetrieveByReadDir(fs)
    96  		if msg != "" {
    97  			wpf(os.Stdout, msg+"\n")
    98  			wpf(os.Stdout, bb.String())
    99  			t.Errorf("%v", msg)
   100  		}
   101  
   102  		bb, msg = WalkDirs(fs)
   103  		if msg != "" {
   104  			wpf(os.Stdout, msg+"\n")
   105  			wpf(os.Stdout, bb.String())
   106  			t.Errorf("%v", msg)
   107  		}
   108  	}
   109  }