]> Cypherpunks.ru repositories - gostls13.git/blob - src/arena/arena_test.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / src / arena / arena_test.go
1 // Copyright 2022 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 //go:build goexperiment.arenas
6
7 package arena_test
8
9 import (
10         "arena"
11         "testing"
12 )
13
14 type T1 struct {
15         n int
16 }
17 type T2 [1 << 20]byte // 1MiB
18
19 func TestSmoke(t *testing.T) {
20         a := arena.NewArena()
21         defer a.Free()
22
23         tt := arena.New[T1](a)
24         tt.n = 1
25
26         ts := arena.MakeSlice[T1](a, 99, 100)
27         if len(ts) != 99 {
28                 t.Errorf("Slice() len = %d, want 99", len(ts))
29         }
30         if cap(ts) != 100 {
31                 t.Errorf("Slice() cap = %d, want 100", cap(ts))
32         }
33         ts[1].n = 42
34 }
35
36 func TestSmokeLarge(t *testing.T) {
37         a := arena.NewArena()
38         defer a.Free()
39         for i := 0; i < 10*64; i++ {
40                 _ = arena.New[T2](a)
41         }
42 }