From e17c2a3f14116b3d1ab7504e3a242382e7723fcc Mon Sep 17 00:00:00 2001 From: Ninpo Date: Mon, 10 Jul 2023 00:01:52 +0100 Subject: [PATCH] Fixes test file collisions with high concurrency builds Fix by Ninpo When tests are run in parallel it's possible for ImageWriter and FFmpegWriter Gif tests to truncate/overwrite the other's output1.gif. This change makes use of test file names unique to the tests themselves. Because cmake defaults to Makefiles and make does not -j$(nproc) by default, this bug can't show up unless part of a build with parallel make with tests included. https://github.com/OpenShot/libopenshot/issues/933 --- tests/FFmpegWriter.cpp | 14 +++++++------- tests/ImageWriter.cpp | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/FFmpegWriter.cpp b/tests/FFmpegWriter.cpp index cbaa7264b..3a2f4ce80 100644 --- a/tests/FFmpegWriter.cpp +++ b/tests/FFmpegWriter.cpp @@ -34,7 +34,7 @@ TEST_CASE( "Webm", "[libopenshot][ffmpegwriter]" ) r.Open(); /* WRITER ---------------- */ - FFmpegWriter w("output1.webm"); + FFmpegWriter w("Webm-output1.webm"); // Set options w.SetAudioOptions(true, "libvorbis", 44100, 2, LAYOUT_STEREO, 188000); @@ -50,7 +50,7 @@ TEST_CASE( "Webm", "[libopenshot][ffmpegwriter]" ) w.Close(); r.Close(); - FFmpegReader r1("output1.webm"); + FFmpegReader r1("Webm-output1.webm"); r1.Open(); // Verify various settings on new MP4 @@ -81,7 +81,7 @@ TEST_CASE( "Options_Overloads", "[libopenshot][ffmpegwriter]" ) r.Open(); /* WRITER ---------------- */ - FFmpegWriter w("output1.mp4"); + FFmpegWriter w("Options_Overloads-output1.mp4"); // Set options w.SetAudioOptions("aac", 48000, 192000); @@ -97,7 +97,7 @@ TEST_CASE( "Options_Overloads", "[libopenshot][ffmpegwriter]" ) w.Close(); r.Close(); - FFmpegReader r1("output1.mp4"); + FFmpegReader r1("Options_Overloads-output1.mp4"); r1.Open(); // Verify implied settings @@ -123,7 +123,7 @@ TEST_CASE( "DisplayInfo", "[libopenshot][ffmpegwriter]" ) r.Open(); /* WRITER ---------------- */ - FFmpegWriter w("output1.webm"); + FFmpegWriter w("DisplayInfo-output1.webm"); // Set options w.SetAudioOptions(true, "libvorbis", 44100, 2, LAYOUT_STEREO, 188000); @@ -203,7 +203,7 @@ TEST_CASE( "Gif", "[libopenshot][ffmpegwriter]" ) t.Open(); /* WRITER ---------------- */ - FFmpegWriter w("output1.gif"); + FFmpegWriter w("Gif-output1.gif"); // Set options (no audio options are set) w.SetVideoOptions(true, "gif", Fraction(24,1), 1280, 720, Fraction(1,1), false, false, 15000000); @@ -221,7 +221,7 @@ TEST_CASE( "Gif", "[libopenshot][ffmpegwriter]" ) w.Close(); t.Close(); - FFmpegReader r1("output1.gif"); + FFmpegReader r1("Gif-output1.gif"); r1.Open(); // Verify various settings on new Gif diff --git a/tests/ImageWriter.cpp b/tests/ImageWriter.cpp index 5c7edc1e7..db8aeea65 100644 --- a/tests/ImageWriter.cpp +++ b/tests/ImageWriter.cpp @@ -64,7 +64,7 @@ TEST_CASE( "Gif", "[libopenshot][imagewriter]" ) r.Open(); /* WRITER ---------------- */ - ImageWriter w("output1.gif"); + ImageWriter w("ImageWriter-Gif-output1.gif"); CHECK_FALSE(w.IsOpen()); @@ -87,7 +87,7 @@ TEST_CASE( "Gif", "[libopenshot][imagewriter]" ) r.Close(); // Open up the 5th frame from the newly created GIF - ImageReader r1("output1.gif[4]"); + ImageReader r1("ImageWriter-Gif-output1.gif[4]"); // Basic Reader state queries CHECK(r1.Name() == "ImageReader");