diff options
| -rw-r--r-- | main.go | 18 | ||||
| -rw-r--r-- | main_test.go | 16 | 
2 files changed, 25 insertions, 9 deletions
@@ -1,6 +1,7 @@  package main  import ( +	"runtime/pprof"  	"io/ioutil"  	"flag"  	"fmt" @@ -73,7 +74,19 @@ func main() {  	flag.BoolVar(&fusedebug, "fusedebug", false, "Enable fuse library debug output")  	flag.BoolVar(&init, "init", false, "Initialize encrypted directory")  	flag.BoolVar(&zerokey, "zerokey", false, "Use all-zero dummy master key") +	var cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file") +  	flag.Parse() +	if *cpuprofile != "" { +        f, err := os.Create(*cpuprofile) +        if err != nil { +            fmt.Println(err) +			os.Exit(ERREXIT_INIT) +        } +		fmt.Printf("Writing CPU profile to %s\n", *cpuprofile) +        pprof.StartCPUProfile(f) +        defer pprof.StopCPUProfile() +    }  	if debug {  		cryptfs.Debug.Enable()  		cryptfs.Debug.Printf("Debug output enabled\n") @@ -102,7 +115,7 @@ func main() {  	key := make([]byte, cryptfs.KEY_LEN)  	if zerokey {  		fmt.Printf("Zerokey mode active: using all-zero dummy master key.\n") -		fmt.Printf("ZEROKEY MODE PROVIDES NO SECURITY AT ALL.\n") +		fmt.Printf("ZEROKEY MODE PROVIDES NO SECURITY AT ALL AND SHOULD ONLY BE USED FOR TESTING.\n")  	} else {  		cfname := filepath.Join(cipherdir, cryptfs.ConfDefaultName)  		_, err = os.Stat(cfname) @@ -218,9 +231,6 @@ func cluefsFrontend(key []byte, cipherdir string, mountpoint string) {  		fmt.Println(err)  		os.Exit(ERREXIT_MOUNT2)  	} - -	// We are done -	os.Exit(0)  }  func pathfsFrontend(key []byte, cipherdir string, mountpoint string, debug bool){ diff --git a/main_test.go b/main_test.go index 667d626..93aa6ff 100644 --- a/main_test.go +++ b/main_test.go @@ -16,12 +16,16 @@ const tmpDir = "main_test_tmp/"  const plainDir = tmpDir + "plain/"  const cipherDir = tmpDir + "cipher/" -func TestMain(m *testing.M) { - +func unmount() error {  	fu := exec.Command("fusermount", "-u", plainDir)  	fu.Stdout = os.Stdout  	fu.Stderr = os.Stderr -	fu.Run() +	return fu.Run() +} + +func TestMain(m *testing.M) { + +	unmount()  	os.RemoveAll(tmpDir)  	err := os.MkdirAll(plainDir, 0777) @@ -34,6 +38,7 @@ func TestMain(m *testing.M) {  		panic("Could not create cipherDir")  	} +	//c := exec.Command("./gocryptfs", "--zerokey", "--cpuprofile", "/tmp/gcfs.cpu", cipherDir, plainDir)  	c := exec.Command("./gocryptfs", "--zerokey", cipherDir, plainDir)  	c.Stdout = os.Stdout  	c.Stderr = os.Stderr @@ -43,7 +48,7 @@ func TestMain(m *testing.M) {  	r := m.Run() -	fu.Run() +	unmount()  	os.Exit(r)  } @@ -142,7 +147,7 @@ func BenchmarkStreamRead(t *testing.B) {  	if t.N > mb {  		// Grow file so we can satisfy the test -		fmt.Printf("Growing file to %d MB\n", t.N) +		fmt.Printf("Growing file to %d MB... ", t.N)  		f2, err := os.OpenFile(fn, os.O_WRONLY | os.O_APPEND, 0666)  		if err != nil {  			fmt.Println(err) @@ -156,6 +161,7 @@ func BenchmarkStreamRead(t *testing.B) {  			}  		}  		f2.Close() +		fmt.Printf("done\n")  	}  	file, err := os.Open(plainDir + "BenchmarkWrite")  | 
