1 // Copyright 2016 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.
10 "golang.org/x/net/bpf"
13 func TestVMRetA(t *testing.T) {
14 vm, done, err := testVM(t, []bpf.Instruction{
22 t.Fatalf("failed to load BPF program: %v", err)
26 out, err := vm.Run([]byte{
27 0xff, 0xff, 0xff, 0xff,
28 0xff, 0xff, 0xff, 0xff,
32 t.Fatalf("unexpected error while running program: %v", err)
34 if want, got := 1, out; want != got {
35 t.Fatalf("unexpected number of output bytes:\n- want: %d\n- got: %d",
40 func TestVMRetALargerThanInput(t *testing.T) {
41 vm, done, err := testVM(t, []bpf.Instruction{
49 t.Fatalf("failed to load BPF program: %v", err)
53 out, err := vm.Run([]byte{
54 0xff, 0xff, 0xff, 0xff,
55 0xff, 0xff, 0xff, 0xff,
59 t.Fatalf("unexpected error while running program: %v", err)
61 if want, got := 2, out; want != got {
62 t.Fatalf("unexpected number of output bytes:\n- want: %d\n- got: %d",
67 func TestVMRetConstant(t *testing.T) {
68 vm, done, err := testVM(t, []bpf.Instruction{
74 t.Fatalf("failed to load BPF program: %v", err)
78 out, err := vm.Run([]byte{
79 0xff, 0xff, 0xff, 0xff,
80 0xff, 0xff, 0xff, 0xff,
84 t.Fatalf("unexpected error while running program: %v", err)
86 if want, got := 1, out; want != got {
87 t.Fatalf("unexpected number of output bytes:\n- want: %d\n- got: %d",
92 func TestVMRetConstantLargerThanInput(t *testing.T) {
93 vm, done, err := testVM(t, []bpf.Instruction{
99 t.Fatalf("failed to load BPF program: %v", err)
103 out, err := vm.Run([]byte{
104 0xff, 0xff, 0xff, 0xff,
105 0xff, 0xff, 0xff, 0xff,
109 t.Fatalf("unexpected error while running program: %v", err)
111 if want, got := 2, out; want != got {
112 t.Fatalf("unexpected number of output bytes:\n- want: %d\n- got: %d",