static void test_blend(const surface& dst, const Uint8 amount, const Uint32 color) { std::stringstream sstr; sstr << std::hex << std::setfill('0') << "Blend image amount »" << std::setw(2) << static_cast<Uint32>(amount) << "« color »" << std::setw(8) << color << "« : "; const std::string filename = blend_get_filename("data/test/test/image/blend/", amount, color); BOOST_REQUIRE_EQUAL(image::exists(filename), true); const surface& src = image::get_image(filename); compare_image(src, dst, sstr.str()); }
/* * Main test method */ static void test( void ) { int rc; char start_dir[MOUNT_DIR_SIZE + START_DIR_SIZE + 2]; rtems_dosfs_mount_options mount_opts[2]; rc = mkdir( MOUNT_DIR, S_IRWXU | S_IRWXG | S_IRWXO ); rtems_test_assert( rc == 0 ); snprintf( start_dir, sizeof( start_dir ), "%s/%s", MOUNT_DIR, "strt" ); /* * Tests with code page 850 compatible directory and file names * and the code page 850 backwards compatible default mode mode of the * FAT file system */ mount_device_with_defaults( start_dir ); test_creating_duplicate_directories( &start_dir[0], &DIRECTORY_DUPLICATES[0], NUMBER_OF_DIRECTORIES_DUPLICATED ); unmount_and_close_device(); mount_device_with_defaults( start_dir ); test_duplicated_files( MOUNT_DIR, FILES_DUPLICATES, NUMBER_OF_FILES_DUPLICATED ); unmount_and_close_device(); mount_device_with_defaults( start_dir ); test_creating_invalid_directories(); test_creating_directories( &start_dir[0], &DIRECTORY_NAMES[0][0], NUMBER_OF_DIRECTORIES ); test_handling_directories( &start_dir[0], &DIRECTORY_NAMES[0][0], NUMBER_OF_DIRECTORIES, &FILE_NAMES[0][0], NUMBER_OF_FILES ); compare_image( MOUNT_DIR, "/dev/rdb", NULL); rc = unmount( MOUNT_DIR ); rtems_test_assert( rc == 0 ); /* * Again tests with code page 850 compatible directory and file names * but with multibyte string compatible conversion methods which use * iconv and utf8proc */ mount_opts[0].converter = rtems_dosfs_create_utf8_converter( "CP850" ); rtems_test_assert( mount_opts[0].converter != NULL ); rc = mount( RAMDISK_PATH, MOUNT_DIR, "dosfs", RTEMS_FILESYSTEM_READ_WRITE, &mount_opts ); rtems_test_assert( rc == 0 ); test_finding_directories( &start_dir[0], &DIRECTORY_NAMES[0][0], NUMBER_OF_DIRECTORIES, &FILE_NAMES[0][0], NUMBER_OF_FILES ); unmount_and_close_device(); mount_device_with_iconv( start_dir, &mount_opts[0] ); test_creating_invalid_directories(); test_creating_duplicate_directories( &start_dir[0], &DIRECTORY_DUPLICATES[0], NUMBER_OF_DIRECTORIES_DUPLICATED ); unmount_and_close_device(); mount_device_with_iconv( start_dir, &mount_opts[0] ); test_duplicated_files( MOUNT_DIR, FILES_DUPLICATES, NUMBER_OF_FILES_DUPLICATED ); unmount_and_close_device(); mount_device_with_iconv( start_dir, &mount_opts[0] ); test_creating_directories( &start_dir[0], &DIRECTORY_NAMES[0][0], NUMBER_OF_DIRECTORIES ); test_handling_directories( &start_dir[0], &DIRECTORY_NAMES[0][0], NUMBER_OF_DIRECTORIES, &FILE_NAMES[0][0], NUMBER_OF_FILES ); mount_opts[1].converter = rtems_dosfs_create_utf8_converter( "CP850" ); rtems_test_assert( mount_opts[1].converter != NULL ); compare_image( MOUNT_DIR, "/dev/rdb", &mount_opts[1]); rc = unmount( MOUNT_DIR ); rtems_test_assert( rc == 0 ); print_image( "IMAGE_BIN_LE_SINGLEBYTE_H_", "IMAGE_BIN_LE_SINGLEBYTE"); rc = mount( RAMDISK_PATH, MOUNT_DIR, "dosfs", RTEMS_FILESYSTEM_READ_WRITE, NULL ); rtems_test_assert( rc == 0 ); unmount_and_close_device(); /* * Tests with multibyte directory and file names and * with multibyte string compatible conversion methods which use * iconv and utf8proc */ mount_device_with_iconv( start_dir, &mount_opts[0] ); test_creating_duplicate_directories( &start_dir[0], &MULTIBYTE_DUPLICATES[0], NUMBER_OF_MULTIBYTE_NAMES_DUPLICATED ); unmount_and_close_device(); mount_device_with_iconv( start_dir, &mount_opts[0] ); test_duplicated_files( MOUNT_DIR, &MULTIBYTE_DUPLICATES[0], NUMBER_OF_MULTIBYTE_NAMES_DUPLICATED ); unmount_and_close_device(); mount_device_with_iconv( start_dir, &mount_opts[0] ); test_creating_directories( &start_dir[0], &NAMES_MULTIBYTE[0][0], NUMBER_OF_NAMES_MULTIBYTE ); test_handling_directories( &start_dir[0], &NAMES_MULTIBYTE[0][0], NUMBER_OF_NAMES_MULTIBYTE, &NAMES_MULTIBYTE[0][0], NUMBER_OF_NAMES_MULTIBYTE ); mount_opts[1].converter = rtems_dosfs_create_utf8_converter( "CP850" ); rtems_test_assert( mount_opts[1].converter != NULL ); compare_image( MOUNT_DIR, "/dev/rdc", &mount_opts[1]); rc = unmount( MOUNT_DIR ); rtems_test_assert( rc == 0 ); print_image( "IMAGE_BIN_LE_MULTIBYTE_H_", "IMAGE_BIN_LE_MULTIBYTE"); rc = mount( RAMDISK_PATH, MOUNT_DIR, "dosfs", RTEMS_FILESYSTEM_READ_WRITE, NULL ); rtems_test_assert( rc == 0 ); test_finding_directories( &start_dir[0], &NAMES_MULTIBYTE_IN_CODEPAGE_FORMAT[0][0], NUMBER_OF_NAMES_MULTIBYTE, &NAMES_MULTIBYTE_IN_CODEPAGE_FORMAT[0][0], NUMBER_OF_NAMES_MULTIBYTE ); unmount_and_close_device(); test_compatibility(); }