mirror of
https://github.com/TeaOSLab/EdgeNode.git
synced 2025-11-03 23:20:25 +08:00
88 lines
1.6 KiB
Go
88 lines
1.6 KiB
Go
// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cloud .
|
|
|
|
package bfs_test
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/TeaOSLab/EdgeNode/internal/utils/bfs"
|
|
"github.com/iwind/TeaGo/assert"
|
|
)
|
|
|
|
func TestBlocksFile_CanClose(t *testing.T) {
|
|
var a = assert.NewAssertion(t)
|
|
|
|
bFile, openErr := bfs.OpenBlocksFile("testdata/test.b", bfs.DefaultBlockFileOptions)
|
|
if openErr != nil {
|
|
if os.IsNotExist(openErr) {
|
|
return
|
|
}
|
|
t.Fatal(openErr)
|
|
}
|
|
|
|
reader, err := bFile.OpenFileReader(bfs.Hash("123456"), false)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
a.IsTrue(!bFile.CanClose())
|
|
|
|
err = reader.Close()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// duplicated close
|
|
err = reader.Close()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
a.IsTrue(bFile.CanClose())
|
|
}
|
|
|
|
func TestBlocksFile_OpenFileWriter_SameHash(t *testing.T) {
|
|
bFile, openErr := bfs.OpenBlocksFile("testdata/test.b", bfs.DefaultBlockFileOptions)
|
|
if openErr != nil {
|
|
if os.IsNotExist(openErr) {
|
|
return
|
|
}
|
|
t.Fatal(openErr)
|
|
}
|
|
|
|
{
|
|
writer, err := bFile.OpenFileWriter(bfs.Hash("123456"), -1, false)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
_ = writer.Close()
|
|
}
|
|
|
|
{
|
|
writer, err := bFile.OpenFileWriter(bfs.Hash("123456"), -1, false)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
_ = writer.Close()
|
|
}
|
|
}
|
|
|
|
func TestBlocksFile_RemoveAll(t *testing.T) {
|
|
bFile, err := bfs.OpenBlocksFile("testdata/test.b", bfs.DefaultBlockFileOptions)
|
|
if err != nil {
|
|
if os.IsNotExist(err) {
|
|
return
|
|
}
|
|
t.Fatal(err)
|
|
}
|
|
defer func() {
|
|
_ = bFile.Close()
|
|
}()
|
|
|
|
err = bFile.RemoveAll()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|