/* Finish a test, closing socket and rejoining child. If eof is non-zero, * expects to read EOF from the socket before closing. */ static int finish(ne_socket *sock, int eof) { if (eof) CALL(expect_close(sock)); CALL(good_close(sock)); return await_server(); }
static libmtd_t mock_libmtd_open() { /* create a mock object for libmtd, not using sysfs */ expect_open(SYSFS_ROOT "/class/mtd/mtd0/name", O_RDONLY, 4); expect_close(4,0); libmtd_t lib = libmtd_open(); assert_non_null(lib); return lib; }
/* Test that just does a connect then a close. */ static int read_close(void) { ne_socket *sock; CALL(begin(&sock, serve_close, NULL)); CALL(expect_close(sock)); ONN("close failed", ne_sock_close(sock)); return await_server(); }
/* Test a simple read. */ static int single_read(void) { ne_socket *sock; DECL(hello, STR); CALL(begin(&sock, serve_sstring, &hello)); CALL(read_expect(sock, STR, strlen(STR))); CALL(expect_close(sock)); CALL(good_close(sock)); return await_server(); }
static void test_libmtd_open(void **state) { expect_open(SYSFS_ROOT "/class/mtd/mtd0/name", O_RDONLY, 4); expect_close(4,0); struct libmtd *lib = libmtd_open(); assert_non_null(lib); assert_string_equal(lib->sysfs_mtd, SYSFS_ROOT "/class/mtd"); assert_string_equal(lib->mtd, SYSFS_ROOT "/class/mtd/mtd%d"); assert_string_equal(lib->mtd_name, SYSFS_ROOT "/class/mtd/mtd%d/name"); assert_string_equal(lib->mtd_dev, SYSFS_ROOT "/class/mtd/mtd%d/dev"); assert_string_equal(lib->mtd_type, SYSFS_ROOT "/class/mtd/mtd%d/type"); assert_string_equal(lib->mtd_eb_size, SYSFS_ROOT "/class/mtd/mtd%d/erasesize"); assert_string_equal(lib->mtd_size, SYSFS_ROOT "/class/mtd/mtd%d/size"); assert_string_equal(lib->mtd_min_io_size, SYSFS_ROOT "/class/mtd/mtd%d/writesize"); assert_string_equal(lib->mtd_subpage_size, SYSFS_ROOT "/class/mtd/mtd%d/subpagesize"); assert_string_equal(lib->mtd_oob_size, SYSFS_ROOT "/class/mtd/mtd%d/oobsize"); assert_string_equal(lib->mtd_oobavail, SYSFS_ROOT "/class/mtd/mtd%d/oobavail"); assert_string_equal(lib->mtd_region_cnt, SYSFS_ROOT "/class/mtd/mtd%d/numeraseregions"); assert_string_equal(lib->mtd_flags, SYSFS_ROOT "/class/mtd/mtd%d/flags"); libmtd_close(lib); (void) state; }
static void test_mtd_get_dev_info1(void **state) { struct libmtd *lib = mock_libmtd_open(); struct mtd_dev_info info; int dev_num = 0; memset(&info, 0, sizeof(info)); expect_open(SYSFS_ROOT "/class/mtd/mtd0/dev", O_RDONLY, 0); expect_read_real(50,0); expect_read(1,0); expect_close(3,1); expect_open(SYSFS_ROOT "/class/mtd/mtd0/name", O_RDONLY, 0); expect_read_real(128,0); expect_read(1,0); expect_close(3,1); expect_open(SYSFS_ROOT "/class/mtd/mtd0/type", O_RDONLY, 4); expect_read(65,0); expect_read(1,0); expect_close(4,0); expect_open(SYSFS_ROOT "/class/mtd/mtd0/erasesize", O_RDONLY, 0); expect_read_real(50, 0); expect_close(3,1); expect_open(SYSFS_ROOT "/class/mtd/mtd0/size", O_RDONLY, 0); expect_read_real(50,0); expect_close(3,1); expect_open(SYSFS_ROOT "/class/mtd/mtd0/writesize", O_RDONLY, 0); expect_read_real(50,0); expect_close(3,1); expect_open(SYSFS_ROOT "/class/mtd/mtd0/subpagesize", O_RDONLY, 0); expect_read_real(50,0); expect_close(3,1); expect_open(SYSFS_ROOT "/class/mtd/mtd0/oobsize", O_RDONLY, 0); expect_read_real(50,0); expect_close(3,1); expect_open(SYSFS_ROOT "/class/mtd/mtd0/oobavail", O_RDONLY, 0); expect_read_real(50,0); expect_close(3,1); expect_open(SYSFS_ROOT "/class/mtd/mtd0/numeraseregions", O_RDONLY, 0); expect_read_real(50,0); expect_close(3,1); expect_open(SYSFS_ROOT "/class/mtd/mtd0/flags", O_RDONLY, 0); expect_read_real(50,0); expect_close(3,1); int r = mtd_get_dev_info1(lib, dev_num, &info); assert_int_equal(r, 0); /* TODO check values */ libmtd_close(lib); (void)state; }