Skip to content

Commit

Permalink
Add more test cases for UTF8 filenames (#889)
Browse files Browse the repository at this point in the history
  • Loading branch information
derselbst authored May 12, 2021
1 parent fbd9d13 commit 8446023
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 9 deletions.
4 changes: 3 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -705,8 +705,10 @@ endif()

# manipulate some variables to setup a proper test env
set(TEST_SOUNDFONT "${CMAKE_SOURCE_DIR}/sf2/VintageDreamsWaves-v2.sf2")
set(TEST_SOUNDFONT_UTF8 "${CMAKE_SOURCE_DIR}/sf2/\\xE2\\x96\\xA0VintageDreamsWaves-v2\\xE2\\x96\\xA0.sf2")
set(TEST_SOUNDFONT_UTF8_1 "${CMAKE_SOURCE_DIR}/sf2/\\xE2\\x96\\xA0VintageDreamsWaves-v2\\xE2\\x96\\xA0.sf2")
set(TEST_SOUNDFONT_UTF8_2 "${CMAKE_SOURCE_DIR}/sf2/VìntàgèDrèàmsWàvès-v2.sf2")
set(TEST_SOUNDFONT_SF3 "${CMAKE_SOURCE_DIR}/sf2/VintageDreamsWaves-v2.sf3")
set(TEST_MIDI_UTF8 "${CMAKE_SOURCE_DIR}/test/èmpty.mid")

# Make sure to link against libm before checking for math functions below
set ( CMAKE_REQUIRED_LIBRARIES "${LIBFLUID_LIBS};${WINDOWS_LIBS}" )
Expand Down
1 change: 1 addition & 0 deletions sf2/VìntàgèDrèàmsWàvès-v2.sf2
4 changes: 3 additions & 1 deletion src/config.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,9 @@
#cmakedefine TEST_SOUNDFONT "@TEST_SOUNDFONT@"

/* Soundfont to load for UTF-8 unit testing */
#cmakedefine TEST_SOUNDFONT_UTF8 "@TEST_SOUNDFONT_UTF8@"
#cmakedefine TEST_SOUNDFONT_UTF8_1 "@TEST_SOUNDFONT_UTF8_1@"
#cmakedefine TEST_SOUNDFONT_UTF8_2 "@TEST_SOUNDFONT_UTF8_2@"
#cmakedefine TEST_MIDI_UTF8 "@TEST_MIDI_UTF8@"

/* SF3 Soundfont to load for unit testing */
#cmakedefine TEST_SOUNDFONT_SF3 "@TEST_SOUNDFONT_SF3@"
Expand Down
31 changes: 24 additions & 7 deletions test/test_utf8_open.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,20 @@ int main(void)
int id;
fluid_settings_t *settings;
fluid_synth_t *synth;
fluid_player_t *player;

FILE *sfont_file;
sfont_file = FLUID_FOPEN(TEST_SOUNDFONT_UTF8, "rb");
TEST_ASSERT(sfont_file != NULL);
TEST_ASSERT(FLUID_FCLOSE(sfont_file) == 0);
FILE *file;
file = FLUID_FOPEN(TEST_SOUNDFONT_UTF8_1, "rb");
TEST_ASSERT(file != NULL);
TEST_ASSERT(FLUID_FCLOSE(file) == 0);

file = FLUID_FOPEN(TEST_SOUNDFONT_UTF8_2, "rb");
TEST_ASSERT(file != NULL);
TEST_ASSERT(FLUID_FCLOSE(file) == 0);

file = FLUID_FOPEN(TEST_MIDI_UTF8, "rb");
TEST_ASSERT(file != NULL);
TEST_ASSERT(FLUID_FCLOSE(file) == 0);

settings = new_fluid_settings();
synth = new_fluid_synth(settings);
Expand All @@ -26,11 +35,19 @@ int main(void)
// no sfont loaded
TEST_ASSERT(fluid_synth_sfcount(synth) == 0);

TEST_ASSERT(fluid_is_soundfont(TEST_SOUNDFONT_UTF8) == TRUE);
TEST_ASSERT(fluid_is_soundfont(TEST_SOUNDFONT_UTF8_1) == TRUE);
TEST_SUCCESS(id = fluid_synth_sfload(synth, TEST_SOUNDFONT_UTF8_1, 1));

TEST_ASSERT(fluid_is_soundfont(TEST_SOUNDFONT_UTF8_2) == TRUE);
TEST_SUCCESS(id = fluid_synth_sfload(synth, TEST_SOUNDFONT_UTF8_2, 1));

player = new_fluid_player(synth);
TEST_ASSERT(player != NULL);

// load a sfont to synth
TEST_SUCCESS(id = fluid_synth_sfload(synth, TEST_SOUNDFONT_UTF8, 1));
TEST_ASSERT(fluid_is_midifile(TEST_MIDI_UTF8) == TRUE);
TEST_SUCCESS(fluid_player_add(player, TEST_MIDI_UTF8));

delete_fluid_player(player);
delete_fluid_synth(synth);
delete_fluid_settings(settings);

Expand Down
Binary file added test/èmpty.mid
Binary file not shown.

0 comments on commit 8446023

Please sign in to comment.