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 7package arena_test 8 9import ( 10 "arena" 11 "testing" 12) 13 14type T1 struct { 15 n int 16} 17type T2 [1 << 20]byte // 1MiB 18 19func 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 36func 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} 43