You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.7 KiB
76 lines
1.7 KiB
package volume_server_ui
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/seaweedfs/seaweedfs/weed/stats"
|
|
)
|
|
|
|
func TestStatusTpl(t *testing.T) {
|
|
args := struct {
|
|
Version string
|
|
Masters []string
|
|
Volumes interface{}
|
|
EcVolumes interface{}
|
|
RemoteVolumes interface{}
|
|
DiskStatuses interface{}
|
|
Stats interface{}
|
|
Counters *stats.ServerStats
|
|
}{
|
|
Version: "3.59",
|
|
Masters: []string{"localhost:9333"},
|
|
EcVolumes: []interface{}{
|
|
struct {
|
|
VolumeId uint32
|
|
Collection string
|
|
Size uint64
|
|
Shards []interface{}
|
|
CreatedAt time.Time
|
|
}{
|
|
VolumeId: 1,
|
|
Collection: "ectest",
|
|
Size: 8 * 1024 * 1024,
|
|
Shards: []interface{}{
|
|
struct {
|
|
ShardId uint8
|
|
Size int64
|
|
}{
|
|
ShardId: 4,
|
|
Size: 1024 * 1024,
|
|
},
|
|
struct {
|
|
ShardId uint8
|
|
Size uint32
|
|
}{
|
|
ShardId: 6,
|
|
Size: 1024 * 1024,
|
|
},
|
|
},
|
|
CreatedAt: time.Now(),
|
|
},
|
|
},
|
|
Counters: stats.NewServerStats(),
|
|
}
|
|
|
|
var buf bytes.Buffer
|
|
if err := StatusTpl.Execute(&buf, args); err != nil {
|
|
t.Logf("output: %s", buf.String())
|
|
t.Fatalf("template execution error: %v", err)
|
|
}
|
|
|
|
if !bytes.Contains(buf.Bytes(), []byte("8.00 MiB")) {
|
|
t.Errorf("output does not contain formatted volume size '8.00 MiB'")
|
|
}
|
|
if bytes.Count(buf.Bytes(), []byte("1.00 MiB")) != 2 {
|
|
t.Errorf("expected two shards of size '1.00 MiB', but they were not found or not formatted correctly")
|
|
}
|
|
|
|
if !bytes.Contains(buf.Bytes(), []byte("Erasure Coding Shards")) {
|
|
t.Errorf("output does not contain 'Erasure Coding Shards'")
|
|
}
|
|
if !bytes.Contains(buf.Bytes(), []byte("ectest")) {
|
|
t.Errorf("output does not contain 'ectest'")
|
|
}
|
|
}
|