diff options
| author | Veronica Radu <veronicaradu@google.com> | 2019-09-11 18:20:17 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2019-09-23 15:33:19 +0200 |
| commit | bf7e28925b8894ca13f803f66d16cf2b0ae12430 (patch) | |
| tree | 5e25e384f1b97ff2f3fda580dd2ac2fe6fb43d91 /prog/rand_test.go | |
| parent | d96e88f3207d7ac7ad65e13b896f702ad04c46f7 (diff) | |
prog: use type size when generating/mutating ints
Update #1381
Diffstat (limited to 'prog/rand_test.go')
| -rw-r--r-- | prog/rand_test.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/prog/rand_test.go b/prog/rand_test.go index d96d96260..20a305afe 100644 --- a/prog/rand_test.go +++ b/prog/rand_test.go @@ -70,3 +70,24 @@ func generateProg(t *testing.T, target *Target, rs rand.Source) *Prog { } return p } + +func TestSizeGenerateConstArg(t *testing.T) { + target, rs, iters := initRandomTargetTest(t, "test", "64") + r := newRand(target, rs) + for _, c := range target.Syscalls { + ForeachType(c, func(typ Type) { + if _, ok := typ.(*IntType); !ok { + return + } + bits := typ.TypeBitSize() + limit := uint64(1<<bits - 1) + for i := 0; i < iters; i++ { + newArg, _ := typ.generate(r, nil) + newVal := newArg.(*ConstArg).Val + if newVal > limit { + t.Fatalf("invalid generated value: %d. (arg bitsize: %d; max value: %d)", newVal, bits, limit) + } + } + }) + } +} |
