Hunter0x7c7
2022-08-11 a82f9cb69f63aaeba40c024960deda7d75b9fece
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package dispatcher_test
 
import (
    "testing"
 
    . "github.com/v2fly/v2ray-core/v5/app/dispatcher"
    "github.com/v2fly/v2ray-core/v5/common"
    "github.com/v2fly/v2ray-core/v5/common/buf"
)
 
type TestCounter int64
 
func (c *TestCounter) Value() int64 {
    return int64(*c)
}
 
func (c *TestCounter) Add(v int64) int64 {
    x := int64(*c) + v
    *c = TestCounter(x)
    return x
}
 
func (c *TestCounter) Set(v int64) int64 {
    *c = TestCounter(v)
    return v
}
 
func TestStatsWriter(t *testing.T) {
    var c TestCounter
    writer := &SizeStatWriter{
        Counter: &c,
        Writer:  buf.Discard,
    }
 
    mb := buf.MergeBytes(nil, []byte("abcd"))
    common.Must(writer.WriteMultiBuffer(mb))
 
    mb = buf.MergeBytes(nil, []byte("efg"))
    common.Must(writer.WriteMultiBuffer(mb))
 
    if c.Value() != 7 {
        t.Fatal("unexpected counter value. want 7, but got ", c.Value())
    }
}