2 * Copyright (c) 2018 Cisco and/or its affiliates.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at:
7 * http://www.apache.org/licenses/LICENSE-2.0
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
16 #include <vlib/vlib.h>
20 test_crash_command_fn (vlib_main_t * vm,
21 unformat_input_t * input, vlib_cli_command_t * cmd)
23 u64 *p = (u64 *) 0xdefec8ed;
26 ELOG_TYPE_DECLARE (e) =
28 .format = "deliberate crash: touching %x",
32 elog (&vm->elog_main, &e, 0xdefec8ed);
41 VLIB_CLI_COMMAND (test_crash_command, static) =
44 .short_help = "crash the bus!",
45 .function = test_crash_command_fn,
50 test_hash_command_fn (vlib_main_t * vm,
51 unformat_input_t * input, vlib_cli_command_t * cmd)
57 baseaddr = mmap (NULL, 8192, PROT_READ | PROT_WRITE,
58 MAP_PRIVATE | MAP_ANONYMOUS, -1, 0 /* offset */ );
62 clib_unix_warning ("mmap");
66 if (mprotect (baseaddr + (4 << 10), (4 << 10), PROT_NONE) < 0)
68 clib_unix_warning ("mprotect");
72 key_loc = baseaddr + (4 << 10) - 4;
78 hash1 = hash_memory (key_loc, 4, 0ULL);
80 vlib_cli_output (vm, "hash1 is %llx", hash1);
89 hash2 = hash_memory (key_loc, 4, 0ULL);
91 vlib_cli_output (vm, "hash2 is %llx", hash2);
94 vlib_cli_output (vm, "PASS...");
96 vlib_cli_output (vm, "FAIL...");
102 VLIB_CLI_COMMAND (test_hash_command, static) =
104 .path = "test hash_memory",
105 .short_help = "page boundary crossing test",
106 .function = test_hash_command_fn,
111 * fd.io coding-style-patch-verification: ON
114 * eval: (c-set-style "gnu")