Example #1
0
func (s *fuseTestSuite) TestMultipleOpens() {
	datasetName := "TestMultipleOpens"
	str := spec.CreateValueSpecString("ldb", s.LdbDir, datasetName)

	var testfs pathfs.FileSystem

	start(str, func(fs pathfs.FileSystem) { testfs = fs })

	file1, code := testfs.Create("contend", uint32(os.O_CREATE|os.O_RDWR), 0644, nil)
	assert.Equal(s.T(), fuse.OK, code)

	file2, code := testfs.Open("contend", uint32(os.O_RDWR), nil)
	assert.Equal(s.T(), fuse.OK, code)

	file1.Write([]byte("abc contact"), 0)
	file2.Write([]byte("321"), 0)

	data := make([]byte, 11)
	rr, code := file1.Read(data, 0)
	assert.Equal(s.T(), fuse.OK, code)
	assert.Equal(s.T(), 11, rr.Size())
	assert.Equal(s.T(), "321 contact", string(data))
}