1 /* 2 * QTest testcase for the Intel Hexadecimal Object File Loader 3 * 4 * Authors: 5 * Su Hang <suhang16@mails.ucas.ac.cn> 2018 6 * 7 * This work is licensed under the terms of the GNU GPL, version 2 or later. 8 * See the COPYING file in the top-level directory. 9 * 10 */ 11 12 #include "qemu/osdep.h" 13 #include "libqtest.h" 14 15 /* Load 'test.hex' and verify that the in-memory contents are as expected. 16 * 'test.hex' is a memory test pattern stored in Hexadecimal Object 17 * format. It loads at 0x10000 in RAM and contains values from 0 through 18 * 255. 19 */ 20 static void hex_loader_test(void) 21 { 22 unsigned int i; 23 const unsigned int base_addr = 0x00010000; 24 25 QTestState *s = qtest_initf( 26 "-M vexpress-a9 -device loader,file=tests/data/hex-loader/test.hex"); 27 28 for (i = 0; i < 256; ++i) { 29 uint8_t val = qtest_readb(s, base_addr + i); 30 g_assert_cmpuint(i, ==, val); 31 } 32 qtest_quit(s); 33 } 34 35 int main(int argc, char **argv) 36 { 37 g_test_init(&argc, &argv, NULL); 38 39 qtest_add_func("/tmp/hex_loader", hex_loader_test); 40 return g_test_run(); 41 } 42