From 6207981d0794f017db9e1f31c30a3ffffbcec680 Mon Sep 17 00:00:00 2001 From: kunitoki Date: Tue, 23 Dec 2025 17:46:20 +0100 Subject: [PATCH 1/2] Unity style tests --- .../yup_audio_devices/yup_audio_devices.cpp | 5 +- tests/CMakeLists.txt | 7 +- tests/yup_audio_basics.cpp | 52 +++++++++++ .../yup_audio_basics/yup_MixerAudioSource.cpp | 56 ++++++------ .../yup_ResamplingAudioSource.cpp | 18 ++-- .../yup_ReverbAudioSource.cpp | 16 ++-- tests/yup_audio_devices.cpp | 2 + tests/yup_audio_formats.cpp | 2 + tests/yup_core.cpp | 86 +++++++++++++++++++ tests/yup_core.mm | 1 + tests/yup_core/yup_SpinLock.cpp | 13 ++- tests/yup_core/yup_StringPairArray.cpp | 19 ++-- tests/yup_data_model.cpp | 6 ++ tests/yup_dsp.cpp | 15 ++++ tests/yup_events.cpp | 2 + tests/yup_graphics.cpp | 14 +++ tests/yup_graphics/yup_Color.cpp | 17 ++-- tests/yup_graphics/yup_Size.cpp | 5 -- tests/yup_gui.cpp | 10 +++ tests/yup_gui/yup_PopupMenu.cpp | 68 +++++++-------- tests/yup_gui/yup_TextButton.cpp | 10 +-- tests/yup_gui/yup_TextEditor.cpp | 20 ++--- tests/yup_gui/yup_ToggleButton.cpp | 22 ++--- tests/yup_python.cpp | 2 + 24 files changed, 326 insertions(+), 142 deletions(-) create mode 100644 tests/yup_audio_basics.cpp create mode 100644 tests/yup_audio_devices.cpp create mode 100644 tests/yup_audio_formats.cpp create mode 100644 tests/yup_core.cpp create mode 100644 tests/yup_core.mm create mode 100644 tests/yup_data_model.cpp create mode 100644 tests/yup_dsp.cpp create mode 100644 tests/yup_events.cpp create mode 100644 tests/yup_graphics.cpp create mode 100644 tests/yup_gui.cpp create mode 100644 tests/yup_python.cpp diff --git a/modules/yup_audio_devices/yup_audio_devices.cpp b/modules/yup_audio_devices/yup_audio_devices.cpp index 73a83c92e..ad1bed945 100644 --- a/modules/yup_audio_devices/yup_audio_devices.cpp +++ b/modules/yup_audio_devices/yup_audio_devices.cpp @@ -64,14 +64,13 @@ #include "audio_io/yup_SampleRateHelpers.cpp" #include "midi_io/yup_MidiDevices.cpp" +#include "midi_io/ump/yup_UMPBytestreamInputHandler.h" +#include "midi_io/ump/yup_UMPU32InputHandler.h" //============================================================================== #if YUP_MAC || YUP_IOS #include #include - -#include "midi_io/ump/yup_UMPBytestreamInputHandler.h" -#include "midi_io/ump/yup_UMPU32InputHandler.h" #endif #if YUP_MAC diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index a9adea054..8ea57973b 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -124,14 +124,13 @@ yup_standalone_app ( # ==== Setup sources set (sources "") foreach (module ${target_modules}) - file (GLOB_RECURSE module_sources - "${CMAKE_CURRENT_LIST_DIR}/${module}/*.hpp" - "${CMAKE_CURRENT_LIST_DIR}/${module}/*.cpp") + file (GLOB module_sources + "${CMAKE_CURRENT_LIST_DIR}/${module}.cpp") list (APPEND sources ${module_sources}) if (YUP_PLATFORM_APPLE) file (GLOB_RECURSE apple_sources - "${CMAKE_CURRENT_LIST_DIR}/${module}/*.mm") + "${CMAKE_CURRENT_LIST_DIR}/${module}.mm") list (APPEND sources ${apple_sources}) endif() endforeach() diff --git a/tests/yup_audio_basics.cpp b/tests/yup_audio_basics.cpp new file mode 100644 index 000000000..103c8f775 --- /dev/null +++ b/tests/yup_audio_basics.cpp @@ -0,0 +1,52 @@ +#include "yup_audio_basics/yup_ADSR.cpp" +#include "yup_audio_basics/yup_AudioChannelSet.cpp" +#include "yup_audio_basics/yup_AudioDataConverters.cpp" +#include "yup_audio_basics/yup_AudioPlayHead.cpp" +#include "yup_audio_basics/yup_AudioProcessLoadMeasurer.cpp" +#include "yup_audio_basics/yup_AudioSampleBuffer.cpp" +#include "yup_audio_basics/yup_BufferingAudioSource.cpp" +#include "yup_audio_basics/yup_ChannelRemappingAudioSource.cpp" +#include "yup_audio_basics/yup_Decibels.cpp" +#include "yup_audio_basics/yup_FloatVectorOperations.cpp" +#include "yup_audio_basics/yup_IIRFilter.cpp" +#include "yup_audio_basics/yup_Interpolators.cpp" +#include "yup_audio_basics/yup_MemoryAudioSource.cpp" +#include "yup_audio_basics/yup_MidiBuffer.cpp" +#include "yup_audio_basics/yup_MidiDataConcatenator.cpp" +#include "yup_audio_basics/yup_MidiFile.cpp" +#include "yup_audio_basics/yup_MidiKeyboardState.cpp" +#include "yup_audio_basics/yup_MidiMessage.cpp" +#include "yup_audio_basics/yup_MidiMessageSequence.cpp" +#include "yup_audio_basics/yup_MidiRPN.cpp" +#include "yup_audio_basics/yup_MixerAudioSource.cpp" +#include "yup_audio_basics/yup_MPEInstrument.cpp" +#include "yup_audio_basics/yup_MPEMessages.cpp" +#include "yup_audio_basics/yup_MPENote.cpp" +#include "yup_audio_basics/yup_MPESynthesiserBase.cpp" +#include "yup_audio_basics/yup_MPEUtils.cpp" +#include "yup_audio_basics/yup_MPEValue.cpp" +#include "yup_audio_basics/yup_MPEZoneLayout.cpp" +#include "yup_audio_basics/yup_ResamplingAudioSource.cpp" +#include "yup_audio_basics/yup_Reverb.cpp" +#include "yup_audio_basics/yup_ReverbAudioSource.cpp" +#include "yup_audio_basics/yup_SmoothedValue.cpp" +#include "yup_audio_basics/yup_Synthesiser.cpp" +#include "yup_audio_basics/yup_ToneGeneratorAudioSource.cpp" +#include "yup_audio_basics/yup_UMP.cpp" +#include "yup_audio_basics/yup_UMPCapabilityInquiry.cpp" +#include "yup_audio_basics/yup_UMPChannelVoice.cpp" +#include "yup_audio_basics/yup_UMPDataMessages.cpp" +#include "yup_audio_basics/yup_UMPExtendedDataMessages.cpp" +#include "yup_audio_basics/yup_UMPFlexDataMessages.cpp" +#include "yup_audio_basics/yup_UMPJitterReductionTimestamps.cpp" +#include "yup_audio_basics/yup_UMPKeyboardState.cpp" +#include "yup_audio_basics/yup_UMPMessages.cpp" +#include "yup_audio_basics/yup_UMPMidi1ByteStream.cpp" +#include "yup_audio_basics/yup_UMPMidi1ChannelVoiceMessage.cpp" +#include "yup_audio_basics/yup_UMPMidi2ChannelVoiceMessage.cpp" +#include "yup_audio_basics/yup_UMPPacketBuffer.cpp" +#include "yup_audio_basics/yup_UMPStreamMessages.cpp" +#include "yup_audio_basics/yup_UMPSysExCollectors.cpp" +#include "yup_audio_basics/yup_UMPTypes.cpp" +#include "yup_audio_basics/yup_UMPUniversalPacket.cpp" +#include "yup_audio_basics/yup_UMPUniversalSysEx.cpp" \ No newline at end of file diff --git a/tests/yup_audio_basics/yup_MixerAudioSource.cpp b/tests/yup_audio_basics/yup_MixerAudioSource.cpp index 563ecd65b..297f5082d 100644 --- a/tests/yup_audio_basics/yup_MixerAudioSource.cpp +++ b/tests/yup_audio_basics/yup_MixerAudioSource.cpp @@ -28,11 +28,11 @@ using namespace yup; //============================================================================== namespace { -class MockAudioSource : public AudioSource +class MockMixerAudioSource : public AudioSource { public: - MockAudioSource() = default; - ~MockAudioSource() override = default; + MockMixerAudioSource() = default; + ~MockMixerAudioSource() override = default; void prepareToPlay (int samplesPerBlockExpected, double sampleRate) override { @@ -95,7 +95,7 @@ TEST_F (MixerAudioSourceTests, Constructor) TEST_F (MixerAudioSourceTests, Destructor) { auto* temp = new MixerAudioSource(); - auto* source = new MockAudioSource(); + auto* source = new MockMixerAudioSource(); temp->addInputSource (source, true); // Destructor should call removeAllInputs which releases resources @@ -111,7 +111,7 @@ TEST_F (MixerAudioSourceTests, AddInputSourceWithNull) TEST_F (MixerAudioSourceTests, AddInputSourceWithoutDelete) { - MockAudioSource source; + MockMixerAudioSource source; mixer->addInputSource (&source, false); // Source should not be prepared if mixer hasn't been prepared yet (line 68) @@ -122,7 +122,7 @@ TEST_F (MixerAudioSourceTests, AddInputSourceAfterPrepare) { mixer->prepareToPlay (512, 44100.0); - MockAudioSource source; + MockMixerAudioSource source; mixer->addInputSource (&source, false); // Source should be prepared if mixer was already prepared (line 68-69) @@ -133,7 +133,7 @@ TEST_F (MixerAudioSourceTests, AddInputSourceAfterPrepare) TEST_F (MixerAudioSourceTests, AddInputSourceWithDelete) { - auto* source = new MockAudioSource(); + auto* source = new MockMixerAudioSource(); mixer->addInputSource (source, true); // Cleanup will happen in mixer destructor or removeInputSource @@ -141,7 +141,7 @@ TEST_F (MixerAudioSourceTests, AddInputSourceWithDelete) TEST_F (MixerAudioSourceTests, AddDuplicateInput) { - MockAudioSource source; + MockMixerAudioSource source; mixer->addInputSource (&source, false); // Adding same source again should be ignored (line 57) @@ -157,7 +157,7 @@ TEST_F (MixerAudioSourceTests, RemoveInputSourceWithNull) TEST_F (MixerAudioSourceTests, RemoveNonExistentInput) { - MockAudioSource source; + MockMixerAudioSource source; // Should return early if input not found (line 88-89) EXPECT_NO_THROW (mixer->removeInputSource (&source)); EXPECT_FALSE (source.releaseResourcesCalled); @@ -165,7 +165,7 @@ TEST_F (MixerAudioSourceTests, RemoveNonExistentInput) TEST_F (MixerAudioSourceTests, RemoveInputSourceWithoutDelete) { - MockAudioSource source; + MockMixerAudioSource source; mixer->addInputSource (&source, false); mixer->removeInputSource (&source); @@ -175,7 +175,7 @@ TEST_F (MixerAudioSourceTests, RemoveInputSourceWithoutDelete) TEST_F (MixerAudioSourceTests, RemoveInputSourceWithDelete) { - auto* source = new MockAudioSource(); + auto* source = new MockMixerAudioSource(); mixer->addInputSource (source, true); // Should delete the source (line 91-92) @@ -192,8 +192,8 @@ TEST_F (MixerAudioSourceTests, RemoveAllInputsEmpty) TEST_F (MixerAudioSourceTests, RemoveAllInputsWithoutDelete) { - MockAudioSource source1; - MockAudioSource source2; + MockMixerAudioSource source1; + MockMixerAudioSource source2; mixer->addInputSource (&source1, false); mixer->addInputSource (&source2, false); @@ -208,8 +208,8 @@ TEST_F (MixerAudioSourceTests, RemoveAllInputsWithoutDelete) TEST_F (MixerAudioSourceTests, RemoveAllInputsWithDelete) { - auto* source1 = new MockAudioSource(); - auto* source2 = new MockAudioSource(); + auto* source1 = new MockMixerAudioSource(); + auto* source2 = new MockMixerAudioSource(); mixer->addInputSource (source1, true); mixer->addInputSource (source2, true); @@ -220,8 +220,8 @@ TEST_F (MixerAudioSourceTests, RemoveAllInputsWithDelete) TEST_F (MixerAudioSourceTests, RemoveAllInputsMixed) { - MockAudioSource source1; - auto* source2 = new MockAudioSource(); + MockMixerAudioSource source1; + auto* source2 = new MockMixerAudioSource(); mixer->addInputSource (&source1, false); mixer->addInputSource (source2, true); @@ -235,8 +235,8 @@ TEST_F (MixerAudioSourceTests, RemoveAllInputsMixed) //============================================================================== TEST_F (MixerAudioSourceTests, PrepareToPlay) { - MockAudioSource source1; - MockAudioSource source2; + MockMixerAudioSource source1; + MockMixerAudioSource source2; mixer->addInputSource (&source1, false); mixer->addInputSource (&source2, false); @@ -253,8 +253,8 @@ TEST_F (MixerAudioSourceTests, PrepareToPlay) //============================================================================== TEST_F (MixerAudioSourceTests, ReleaseResources) { - MockAudioSource source1; - MockAudioSource source2; + MockMixerAudioSource source1; + MockMixerAudioSource source2; mixer->addInputSource (&source1, false); mixer->addInputSource (&source2, false); @@ -301,7 +301,7 @@ TEST_F (MixerAudioSourceTests, GetNextAudioBlockWithNoInputs) TEST_F (MixerAudioSourceTests, GetNextAudioBlockWithSingleInput) { - MockAudioSource source; + MockMixerAudioSource source; source.fillValue = 0.3f; mixer->addInputSource (&source, false); @@ -332,9 +332,9 @@ TEST_F (MixerAudioSourceTests, GetNextAudioBlockWithSingleInput) TEST_F (MixerAudioSourceTests, GetNextAudioBlockWithMultipleInputs) { - MockAudioSource source1; - MockAudioSource source2; - MockAudioSource source3; + MockMixerAudioSource source1; + MockMixerAudioSource source2; + MockMixerAudioSource source3; source1.fillValue = 0.2f; source2.fillValue = 0.3f; @@ -374,7 +374,7 @@ TEST_F (MixerAudioSourceTests, GetNextAudioBlockWithMultipleInputs) TEST_F (MixerAudioSourceTests, GetNextAudioBlockWithStartSampleOffset) { - MockAudioSource source; + MockMixerAudioSource source; source.fillValue = 0.5f; mixer->addInputSource (&source, false); @@ -411,8 +411,8 @@ TEST_F (MixerAudioSourceTests, GetNextAudioBlockWithStartSampleOffset) TEST_F (MixerAudioSourceTests, GetNextAudioBlockResizesTempBuffer) { - MockAudioSource source1; - MockAudioSource source2; + MockMixerAudioSource source1; + MockMixerAudioSource source2; source1.fillValue = 0.3f; source2.fillValue = 0.4f; diff --git a/tests/yup_audio_basics/yup_ResamplingAudioSource.cpp b/tests/yup_audio_basics/yup_ResamplingAudioSource.cpp index 6c23f2fde..de2600945 100644 --- a/tests/yup_audio_basics/yup_ResamplingAudioSource.cpp +++ b/tests/yup_audio_basics/yup_ResamplingAudioSource.cpp @@ -28,11 +28,11 @@ using namespace yup; //============================================================================== namespace { -class MockAudioSource : public AudioSource +class MockResamplingAudioSource : public AudioSource { public: - MockAudioSource() = default; - ~MockAudioSource() override = default; + MockResamplingAudioSource() = default; + ~MockResamplingAudioSource() override = default; void prepareToPlay (int samplesPerBlockExpected, double sampleRate) override { @@ -75,7 +75,7 @@ class ResamplingAudioSourceTests : public ::testing::Test protected: void SetUp() override { - mockSource = new MockAudioSource(); + mockSource = new MockResamplingAudioSource(); resampler = std::make_unique (mockSource, true, 2); } @@ -84,26 +84,26 @@ class ResamplingAudioSourceTests : public ::testing::Test resampler.reset(); } - MockAudioSource* mockSource; // Owned by resampler + MockResamplingAudioSource* mockSource; // Owned by resampler std::unique_ptr resampler; }; //============================================================================== TEST_F (ResamplingAudioSourceTests, Constructor) { - auto* source = new MockAudioSource(); + auto* source = new MockResamplingAudioSource(); EXPECT_NO_THROW (ResamplingAudioSource (source, true, 2)); } TEST_F (ResamplingAudioSourceTests, ConstructorWithDifferentChannels) { - auto* source = new MockAudioSource(); + auto* source = new MockResamplingAudioSource(); EXPECT_NO_THROW (ResamplingAudioSource (source, true, 8)); } TEST_F (ResamplingAudioSourceTests, Destructor) { - auto* source = new MockAudioSource(); + auto* source = new MockResamplingAudioSource(); auto* temp = new ResamplingAudioSource (source, true, 2); EXPECT_NO_THROW (delete temp); } @@ -308,7 +308,7 @@ TEST_F (ResamplingAudioSourceTests, GetNextAudioBlockBufferResize) TEST_F (ResamplingAudioSourceTests, GetNextAudioBlockMultipleChannels) { - auto* source = new MockAudioSource(); + auto* source = new MockResamplingAudioSource(); auto multiChannelResampler = std::make_unique (source, true, 8); multiChannelResampler->setResamplingRatio (1.0); diff --git a/tests/yup_audio_basics/yup_ReverbAudioSource.cpp b/tests/yup_audio_basics/yup_ReverbAudioSource.cpp index fc5a03988..6acfc2dee 100644 --- a/tests/yup_audio_basics/yup_ReverbAudioSource.cpp +++ b/tests/yup_audio_basics/yup_ReverbAudioSource.cpp @@ -28,11 +28,11 @@ using namespace yup; //============================================================================== namespace { -class MockAudioSource : public AudioSource +class MockReverbAudioSource : public AudioSource { public: - MockAudioSource() = default; - ~MockAudioSource() override = default; + MockReverbAudioSource() = default; + ~MockReverbAudioSource() override = default; void prepareToPlay (int samplesPerBlockExpected, double sampleRate) override { @@ -75,7 +75,7 @@ class ReverbAudioSourceTests : public ::testing::Test protected: void SetUp() override { - mockSource = new MockAudioSource(); + mockSource = new MockReverbAudioSource(); reverbSource = std::make_unique (mockSource, true); } @@ -84,26 +84,26 @@ class ReverbAudioSourceTests : public ::testing::Test reverbSource.reset(); } - MockAudioSource* mockSource; // Owned by reverbSource + MockReverbAudioSource* mockSource; // Owned by reverbSource std::unique_ptr reverbSource; }; //============================================================================== TEST_F (ReverbAudioSourceTests, ConstructorWithDeleteInput) { - auto* source = new MockAudioSource(); + auto* source = new MockReverbAudioSource(); EXPECT_NO_THROW (ReverbAudioSource (source, true)); } TEST_F (ReverbAudioSourceTests, ConstructorWithoutDeleteInput) { - MockAudioSource source; + MockReverbAudioSource source; EXPECT_NO_THROW (ReverbAudioSource (&source, false)); } TEST_F (ReverbAudioSourceTests, Destructor) { - auto* source = new MockAudioSource(); + auto* source = new MockReverbAudioSource(); auto* temp = new ReverbAudioSource (source, true); EXPECT_NO_THROW (delete temp); } diff --git a/tests/yup_audio_devices.cpp b/tests/yup_audio_devices.cpp new file mode 100644 index 000000000..539a4957b --- /dev/null +++ b/tests/yup_audio_devices.cpp @@ -0,0 +1,2 @@ +#include "yup_audio_devices/yup_AudioDeviceManager.cpp" +#include "yup_audio_devices/yup_UMPPacketCollector.cpp" \ No newline at end of file diff --git a/tests/yup_audio_formats.cpp b/tests/yup_audio_formats.cpp new file mode 100644 index 000000000..351da3d61 --- /dev/null +++ b/tests/yup_audio_formats.cpp @@ -0,0 +1,2 @@ +#include "yup_audio_formats/yup_AudioFormatManager.cpp" +#include "yup_audio_formats/yup_WaveAudioFormat.cpp" \ No newline at end of file diff --git a/tests/yup_core.cpp b/tests/yup_core.cpp new file mode 100644 index 000000000..f9d4b5fb3 --- /dev/null +++ b/tests/yup_core.cpp @@ -0,0 +1,86 @@ +#include "yup_core/yup_AbstractFifo.cpp" +#include "yup_core/yup_ArrayBase.cpp" +#include "yup_core/yup_Atomic.cpp" +#include "yup_core/yup_Base64.cpp" +#include "yup_core/yup_BigInteger.cpp" +#include "yup_core/yup_BufferedInputStream.cpp" +#include "yup_core/yup_CharacterFunctions.cpp" +#include "yup_core/yup_ChildProcess.cpp" +#include "yup_core/yup_ConsoleApplication.cpp" +#include "yup_core/yup_DynamicLibrary.cpp" +#include "yup_core/yup_DynamicObject.cpp" +#include "yup_core/yup_ElementComparator.cpp" +#include "yup_core/yup_Enumerate.cpp" +#include "yup_core/yup_EnumHelpers.cpp" +#include "yup_core/yup_Expression.cpp" +#include "yup_core/yup_File.cpp" +#include "yup_core/yup_FileInputStream.cpp" +#include "yup_core/yup_FileSearchPath.cpp" +#include "yup_core/yup_FixedSizeFunction.cpp" +#include "yup_core/yup_FlagSet.cpp" +#include "yup_core/yup_Functional.cpp" +#include "yup_core/yup_GZIPCompressorOutputStream.cpp" +#include "yup_core/yup_GZIPDecompressorInputStream.cpp" +#include "yup_core/yup_HashMap.cpp" +#include "yup_core/yup_HighResolutionTimer.cpp" +#include "yup_core/yup_Identifier.cpp" +#include "yup_core/yup_InterProcessLock.cpp" +#include "yup_core/yup_IPAddress.cpp" +#include "yup_core/yup_JavascriptEngine.cpp" +#include "yup_core/yup_JSON.cpp" +#include "yup_core/yup_JSONSerialisation.cpp" +#include "yup_core/yup_JSONUtils.cpp" +#include "yup_core/yup_LinkedListPointer.cpp" +#include "yup_core/yup_ListenerList.cpp" +#include "yup_core/yup_LocalisedStrings.cpp" +#include "yup_core/yup_MACAddress.cpp" +#include "yup_core/yup_MathFunctions.cpp" +#include "yup_core/yup_MemoryInputStream.cpp" +#include "yup_core/yup_MemoryMappedFile.cpp" +#include "yup_core/yup_MemoryOutputStream.cpp" +#include "yup_core/yup_MetaProgramming.cpp" +#include "yup_core/yup_NamedPipe.cpp" +#include "yup_core/yup_NormalisableRange.cpp" +#include "yup_core/yup_OwnedArray.cpp" +#include "yup_core/yup_PlatformDefs.cpp" +#include "yup_core/yup_Process.cpp" +#include "yup_core/yup_Profiler.cpp" +#include "yup_core/yup_PropertySet.cpp" +#include "yup_core/yup_Random.cpp" +#include "yup_core/yup_RecursiveSpinLock.cpp" +#include "yup_core/yup_ReferenceCountedArray.cpp" +#include "yup_core/yup_ReferenceCountedObject.cpp" +#include "yup_core/yup_Reservoir.cpp" +#include "yup_core/yup_Result.cpp" +#include "yup_core/yup_ResultValue.cpp" +#include "yup_core/yup_ScopedValueSetter.cpp" +#include "yup_core/yup_ScopeGuard.cpp" +#include "yup_core/yup_SHA1.cpp" +#include "yup_core/yup_SharedResourcePointer.cpp" +#include "yup_core/yup_Singleton.cpp" +#include "yup_core/yup_Socket.cpp" +#include "yup_core/yup_SortedSet.cpp" +#include "yup_core/yup_Span.cpp" +#include "yup_core/yup_SparseSet.cpp" +#include "yup_core/yup_SpinLock.cpp" +#include "yup_core/yup_StatisticsAccumulator.cpp" +#include "yup_core/yup_String.cpp" +#include "yup_core/yup_StringArray.cpp" +#include "yup_core/yup_StringPairArray.cpp" +#include "yup_core/yup_StringPool.cpp" +#include "yup_core/yup_SubregionStream.cpp" +#include "yup_core/yup_SystemStats.cpp" +#include "yup_core/yup_TextDiff.cpp" +#include "yup_core/yup_Thread.cpp" +#include "yup_core/yup_ThreadLocalValue.cpp" +#include "yup_core/yup_ThreadPool.cpp" +#include "yup_core/yup_Time.cpp" +#include "yup_core/yup_TimeSliceThread.cpp" +#include "yup_core/yup_URL.cpp" +#include "yup_core/yup_Uuid.cpp" +#include "yup_core/yup_Variant.cpp" +#include "yup_core/yup_Watchdog.cpp" +#include "yup_core/yup_WebInputStream.cpp" +#include "yup_core/yup_XmlDocument.cpp" +#include "yup_core/yup_XmlElement.cpp" +#include "yup_core/yup_ZipFile.cpp" \ No newline at end of file diff --git a/tests/yup_core.mm b/tests/yup_core.mm new file mode 100644 index 000000000..f616bb62a --- /dev/null +++ b/tests/yup_core.mm @@ -0,0 +1 @@ +#include "yup_core/yup_ObjCHelpers.mm" diff --git a/tests/yup_core/yup_SpinLock.cpp b/tests/yup_core/yup_SpinLock.cpp index 273318ff8..2f4fa757e 100644 --- a/tests/yup_core/yup_SpinLock.cpp +++ b/tests/yup_core/yup_SpinLock.cpp @@ -30,14 +30,6 @@ using namespace yup; -namespace -{ -constexpr int numThreads = 4; -constexpr int iterationsPerThread = 1000; -constexpr auto shortDelay = std::chrono::microseconds (10); -constexpr auto mediumDelay = std::chrono::milliseconds (1); -} // namespace - //============================================================================== class SpinLockTests : public ::testing::Test { @@ -49,6 +41,11 @@ class SpinLockTests : public ::testing::Test SpinLock spinLock; std::atomic counter { 0 }; + + static constexpr int numThreads = 4; + static constexpr int iterationsPerThread = 1000; + static constexpr auto shortDelay = std::chrono::microseconds (10); + static constexpr auto mediumDelay = std::chrono::milliseconds (1); }; //============================================================================== diff --git a/tests/yup_core/yup_StringPairArray.cpp b/tests/yup_core/yup_StringPairArray.cpp index ee112ac7d..aa47c501e 100644 --- a/tests/yup_core/yup_StringPairArray.cpp +++ b/tests/yup_core/yup_StringPairArray.cpp @@ -43,11 +43,6 @@ using namespace yup; -static String operator""_S (const char* chars, size_t) -{ - return String { chars }; -} - class StringPairArrayTests : public ::testing::Test { protected: @@ -271,14 +266,14 @@ TEST_F (StringPairArrayTests, AddMapRespectsCaseSensitivity) StringPairArray insensitive { true }; // Case insensitive insensitive.addMap ({ { "duplicate", "a" }, { "Duplicate", "b" } }); EXPECT_EQ (insensitive.size(), 1); - EXPECT_EQ (insensitive["DUPLICATE"], "a"_S); + EXPECT_EQ (insensitive["DUPLICATE"], String ("a")); StringPairArray sensitive { false }; // Case sensitive - sensitive.addMap ({ { "duplicate", "a"_S }, { "Duplicate", "b"_S } }); + sensitive.addMap ({ { "duplicate", String ("a") }, { "Duplicate", String ("b") } }); EXPECT_EQ (sensitive.size(), 2); - EXPECT_EQ (sensitive["duplicate"], "a"_S); - EXPECT_EQ (sensitive["Duplicate"], "b"_S); - EXPECT_EQ (sensitive["DUPLICATE"], ""_S); + EXPECT_EQ (sensitive["duplicate"], String ("a")); + EXPECT_EQ (sensitive["Duplicate"], String ("b")); + EXPECT_EQ (sensitive["DUPLICATE"], String ("")); } TEST_F (StringPairArrayTests, AddMapOverwritesExistingPairs) @@ -287,8 +282,8 @@ TEST_F (StringPairArrayTests, AddMapOverwritesExistingPairs) insensitive.set ("key", "value"); insensitive.addMap ({ { "KEY", "VALUE" } }); EXPECT_EQ (insensitive.size(), 1); - EXPECT_EQ (insensitive.getAllKeys()[0], "key"_S); - EXPECT_EQ (insensitive.getAllValues()[0], "VALUE"_S); + EXPECT_EQ (insensitive.getAllKeys()[0], String ("key")); + EXPECT_EQ (insensitive.getAllValues()[0], String ("VALUE")); StringPairArray sensitive { false }; sensitive.set ("key", "value"); diff --git a/tests/yup_data_model.cpp b/tests/yup_data_model.cpp new file mode 100644 index 000000000..b1cde9ca5 --- /dev/null +++ b/tests/yup_data_model.cpp @@ -0,0 +1,6 @@ +#include "yup_data_model/yup_CachedValue.cpp" +#include "yup_data_model/yup_DataTree.cpp" +#include "yup_data_model/yup_DataTreeObjectList.cpp" +#include "yup_data_model/yup_DataTreeQuery.cpp" +#include "yup_data_model/yup_DataTreeSchema.cpp" +#include "yup_data_model/yup_UndoManager.cpp" \ No newline at end of file diff --git a/tests/yup_dsp.cpp b/tests/yup_dsp.cpp new file mode 100644 index 000000000..4cc3abe80 --- /dev/null +++ b/tests/yup_dsp.cpp @@ -0,0 +1,15 @@ +#include "yup_dsp/yup_BiquadCascade.cpp" +#include "yup_dsp/yup_BiquadFilter.cpp" +#include "yup_dsp/yup_ButterworthFilter.cpp" +#include "yup_dsp/yup_DirectFIR.cpp" +#include "yup_dsp/yup_FFTProcessor.cpp" +#include "yup_dsp/yup_FilterDesigner.cpp" +#include "yup_dsp/yup_FirstOrderFilter.cpp" +#include "yup_dsp/yup_LinkwitzRileyFilter.cpp" +#include "yup_dsp/yup_NoiseGenerators.cpp" +#include "yup_dsp/yup_PartitionedConvolver.cpp" +#include "yup_dsp/yup_RbjFilter.cpp" +#include "yup_dsp/yup_SoftClipper.cpp" +#include "yup_dsp/yup_SpectrumAnalyzerState.cpp" +#include "yup_dsp/yup_StateVariableFilter.cpp" +#include "yup_dsp/yup_WindowFunctions.cpp" \ No newline at end of file diff --git a/tests/yup_events.cpp b/tests/yup_events.cpp new file mode 100644 index 000000000..102fa3e3b --- /dev/null +++ b/tests/yup_events.cpp @@ -0,0 +1,2 @@ +#include "yup_events/yup_Timer.cpp" +#include "yup_events/yup_MessageManager.cpp" \ No newline at end of file diff --git a/tests/yup_graphics.cpp b/tests/yup_graphics.cpp new file mode 100644 index 000000000..0e01569c5 --- /dev/null +++ b/tests/yup_graphics.cpp @@ -0,0 +1,14 @@ +#include "yup_graphics/yup_AffineTransform.cpp" +#include "yup_graphics/yup_Color.cpp" +#include "yup_graphics/yup_ColorGradient.cpp" +#include "yup_graphics/yup_Drawable.cpp" +#include "yup_graphics/yup_Font.cpp" +#include "yup_graphics/yup_Graphics.cpp" +#include "yup_graphics/yup_Line.cpp" +#include "yup_graphics/yup_Path.cpp" +#include "yup_graphics/yup_Point.cpp" +#include "yup_graphics/yup_Rectangle.cpp" +#include "yup_graphics/yup_RectangleList.cpp" +#include "yup_graphics/yup_Size.cpp" +#include "yup_graphics/yup_StrokeType.cpp" +#include "yup_graphics/yup_StyledText.cpp" \ No newline at end of file diff --git a/tests/yup_graphics/yup_Color.cpp b/tests/yup_graphics/yup_Color.cpp index 6792deecb..39946297e 100644 --- a/tests/yup_graphics/yup_Color.cpp +++ b/tests/yup_graphics/yup_Color.cpp @@ -28,11 +28,6 @@ using namespace yup; -namespace -{ -static constexpr float tol = 1e-5f; -} // namespace - TEST (ColorTests, Default_Constructor) { Color c; @@ -120,6 +115,8 @@ TEST (ColorTests, Transparency_Checks) TEST (ColorTests, Alpha_Operations) { + static constexpr float tol = 1e-5f; + Color c (0xff123456); // Test getAlpha and getAlphaFloat @@ -155,6 +152,8 @@ TEST (ColorTests, Alpha_Operations) TEST (ColorTests, Red_Operations) { + static constexpr float tol = 1e-5f; + Color c (0xff123456); // Test getRed and getRedFloat @@ -181,6 +180,8 @@ TEST (ColorTests, Red_Operations) TEST (ColorTests, Green_Operations) { + static constexpr float tol = 1e-5f; + Color c (0xff123456); // Test getGreen and getGreenFloat @@ -207,6 +208,8 @@ TEST (ColorTests, Green_Operations) TEST (ColorTests, Blue_Operations) { + static constexpr float tol = 1e-5f; + Color c (0xff123456); // Test getBlue and getBlueFloat @@ -233,6 +236,8 @@ TEST (ColorTests, Blue_Operations) TEST (ColorTests, HSL_Operations) { + static constexpr float tol = 1e-5f; + // Test red color Color red (0xffff0000); EXPECT_NEAR (red.getHue(), 0.0f, tol); @@ -276,6 +281,8 @@ TEST (ColorTests, HSL_Operations) TEST (ColorTests, HSV_Operations) { + static constexpr float tol = 1e-5f; + // Test red color Color red (0xffff0000); auto [h, s, v] = red.toHSV(); diff --git a/tests/yup_graphics/yup_Size.cpp b/tests/yup_graphics/yup_Size.cpp index 0fa2c5793..47ee87f05 100644 --- a/tests/yup_graphics/yup_Size.cpp +++ b/tests/yup_graphics/yup_Size.cpp @@ -24,11 +24,6 @@ using namespace yup; -namespace -{ -static constexpr float tol = 1e-5f; -} // namespace - TEST (SizeTests, DefaultConstructor) { Size s; diff --git a/tests/yup_gui.cpp b/tests/yup_gui.cpp new file mode 100644 index 000000000..2903d7301 --- /dev/null +++ b/tests/yup_gui.cpp @@ -0,0 +1,10 @@ +#include "yup_gui/yup_ComboBox.cpp" +#include "yup_gui/yup_Component.cpp" +#include "yup_gui/yup_FileChooser.cpp" +#include "yup_gui/yup_Label.cpp" +#include "yup_gui/yup_PopupMenu.cpp" +#include "yup_gui/yup_Slider.cpp" +#include "yup_gui/yup_SwitchButton.cpp" +#include "yup_gui/yup_TextButton.cpp" +#include "yup_gui/yup_TextEditor.cpp" +#include "yup_gui/yup_ToggleButton.cpp" \ No newline at end of file diff --git a/tests/yup_gui/yup_PopupMenu.cpp b/tests/yup_gui/yup_PopupMenu.cpp index 3a2d3ecd3..7e9be8431 100644 --- a/tests/yup_gui/yup_PopupMenu.cpp +++ b/tests/yup_gui/yup_PopupMenu.cpp @@ -27,14 +27,14 @@ using namespace yup; namespace { -constexpr int kTestId1 = 1; -constexpr int kTestId2 = 2; -constexpr int kTestId3 = 3; +constexpr int kPopupTestId1 = 1; +constexpr int kPopupTestId2 = 2; +constexpr int kPopupTestId3 = 3; constexpr int kCustomItemId = 100; -const String kTestText1 = "Option 1"; -const String kTestText2 = "Option 2"; -const String kTestText3 = "Option 3"; +const String kPopupTestText1 = "Option 1"; +const String kPopupTestText2 = "Option 2"; +const String kPopupTestText3 = "Option 3"; const String kSubMenuText = "Sub Menu"; const String kShortcutText = "Ctrl+S"; } // namespace @@ -93,7 +93,7 @@ TEST_F (PopupMenuTest, AddItemIncreasesCount) EXPECT_EQ (0, menu->getNumItems()); EXPECT_TRUE (menu->isEmpty()); - menu->addItem (kTestText1, kTestId1); + menu->addItem (kPopupTestText1, kPopupTestId1); EXPECT_EQ (1, menu->getNumItems()); EXPECT_FALSE (menu->isEmpty()); @@ -103,9 +103,9 @@ TEST_F (PopupMenuTest, AddMultipleItemsWithShortcuts) { auto menu = PopupMenu::create(); - menu->addItem (kTestText1, kTestId1, true, false, kShortcutText); - menu->addItem (kTestText2, kTestId2, false, true); // Disabled and ticked - menu->addItem (kTestText3, kTestId3); + menu->addItem (kPopupTestText1, kPopupTestId1, true, false, kShortcutText); + menu->addItem (kPopupTestText2, kPopupTestId2, false, true); // Disabled and ticked + menu->addItem (kPopupTestText3, kPopupTestId3); EXPECT_EQ (3, menu->getNumItems()); @@ -122,9 +122,9 @@ TEST_F (PopupMenuTest, AddSeparatorIncreasesCount) { auto menu = PopupMenu::create(); - menu->addItem (kTestText1, kTestId1); + menu->addItem (kPopupTestText1, kPopupTestId1); menu->addSeparator(); - menu->addItem (kTestText2, kTestId2); + menu->addItem (kPopupTestText2, kPopupTestId2); EXPECT_EQ (3, menu->getNumItems()); } @@ -137,7 +137,7 @@ TEST_F (PopupMenuTest, AddSubMenu) subMenu->addItem ("Sub Item 1", 10); subMenu->addItem ("Sub Item 2", 11); - menu->addItem (kTestText1, kTestId1); + menu->addItem (kPopupTestText1, kPopupTestId1); menu->addSubMenu (kSubMenuText, subMenu, true); EXPECT_EQ (2, menu->getNumItems()); @@ -150,7 +150,7 @@ TEST_F (PopupMenuTest, AddCustomItem) customComponent->setText ("Custom Menu Item"); customComponent->setSize (150, 25); - menu->addItem (kTestText1, kTestId1); + menu->addItem (kPopupTestText1, kPopupTestId1); menu->addCustomItem (std::move (customComponent), kCustomItemId); EXPECT_EQ (2, menu->getNumItems()); @@ -160,9 +160,9 @@ TEST_F (PopupMenuTest, ClearRemovesAllItems) { auto menu = PopupMenu::create(); - menu->addItem (kTestText1, kTestId1); + menu->addItem (kPopupTestText1, kPopupTestId1); menu->addSeparator(); - menu->addItem (kTestText2, kTestId2); + menu->addItem (kPopupTestText2, kPopupTestId2); EXPECT_EQ (3, menu->getNumItems()); EXPECT_FALSE (menu->isEmpty()); @@ -178,10 +178,10 @@ TEST_F (PopupMenuTest, ClearRemovesAllItems) TEST_F (PopupMenuTest, ItemConstructorText) { - PopupMenu::Item textItem (kTestText1, kTestId1, true, false); + PopupMenu::Item textItem (kPopupTestText1, kPopupTestId1, true, false); - EXPECT_EQ (kTestText1, textItem.text); - EXPECT_EQ (kTestId1, textItem.itemID); + EXPECT_EQ (kPopupTestText1, textItem.text); + EXPECT_EQ (kPopupTestId1, textItem.itemID); EXPECT_TRUE (textItem.isEnabled); EXPECT_FALSE (textItem.isTicked); EXPECT_FALSE (textItem.isHovered); @@ -332,7 +332,7 @@ TEST_F (PopupMenuTest, ShowAndDismissBasic) PopupMenu::dismissAllPopups(); auto menu = PopupMenu::create (PopupMenu::Options().withParentComponent (targetComponent.get())); - menu->addItem (kTestText1, kTestId1); + menu->addItem (kPopupTestText1, kPopupTestId1); EXPECT_FALSE (menu->isVisible()); @@ -352,8 +352,8 @@ TEST_F (PopupMenuTest, ShowWithCallback) PopupMenu::dismissAllPopups(); auto menu = PopupMenu::create (PopupMenu::Options().withParentComponent (targetComponent.get())); - menu->addItem (kTestText1, kTestId1); - menu->addItem (kTestText2, kTestId2); + menu->addItem (kPopupTestText1, kPopupTestId1); + menu->addItem (kPopupTestText2, kPopupTestId2); int selectedItemId = -1; bool callbackCalled = false; @@ -407,7 +407,7 @@ TEST_F (PopupMenuTest, DismissAllPopupsStatic) TEST_F (PopupMenuTest, OnItemSelectedCallback) { auto menu = PopupMenu::create(); - menu->addItem (kTestText1, kTestId1); + menu->addItem (kPopupTestText1, kPopupTestId1); int selectedId = -1; menu->onItemSelected = [&selectedId] (int itemId) @@ -419,9 +419,9 @@ TEST_F (PopupMenuTest, OnItemSelectedCallback) // Simulate calling the callback directly if (menu->onItemSelected) - menu->onItemSelected (kTestId1); + menu->onItemSelected (kPopupTestId1); - EXPECT_EQ (kTestId1, selectedId); + EXPECT_EQ (kPopupTestId1, selectedId); } //============================================================================== @@ -522,9 +522,9 @@ TEST_F (PopupMenuTest, DuplicateItemIds) { auto menu = PopupMenu::create(); - menu->addItem ("First Item", kTestId1); - menu->addItem ("Second Item", kTestId1); // Same ID - menu->addItem ("Third Item", kTestId1); // Same ID again + menu->addItem ("First Item", kPopupTestId1); + menu->addItem ("Second Item", kPopupTestId1); // Same ID + menu->addItem ("Third Item", kPopupTestId1); // Same ID again EXPECT_EQ (3, menu->getNumItems()); // All items should be added regardless of duplicate IDs @@ -550,7 +550,7 @@ TEST_F (PopupMenuTest, VeryLongItemText) for (int i = 0; i < 100; ++i) longText += "Very long menu item text "; - menu->addItem (longText, kTestId1); + menu->addItem (longText, kPopupTestId1); EXPECT_EQ (1, menu->getNumItems()); } @@ -558,9 +558,9 @@ TEST_F (PopupMenuTest, SpecialCharactersInText) { auto menu = PopupMenu::create(); - menu->addItem (L"Item with üñíçødé", kTestId1); - menu->addItem ("Item with\nNewline", kTestId2); - menu->addItem ("Item with\tTab", kTestId3); + menu->addItem (L"Item with üñíçødé", kPopupTestId1); + menu->addItem ("Item with\nNewline", kPopupTestId2); + menu->addItem ("Item with\tTab", kPopupTestId3); menu->addItem ("", 0); // Empty text item EXPECT_EQ (4, menu->getNumItems()); @@ -630,9 +630,9 @@ TEST_F (PopupMenuTest, IteratorSupport) { auto menu = PopupMenu::create(); - menu->addItem (kTestText1, kTestId1); + menu->addItem (kPopupTestText1, kPopupTestId1); menu->addSeparator(); - menu->addItem (kTestText2, kTestId2); + menu->addItem (kPopupTestText2, kPopupTestId2); // Test range-based for loop int itemCount = 0; diff --git a/tests/yup_gui/yup_TextButton.cpp b/tests/yup_gui/yup_TextButton.cpp index 4b301bbab..3d7d0b320 100644 --- a/tests/yup_gui/yup_TextButton.cpp +++ b/tests/yup_gui/yup_TextButton.cpp @@ -28,8 +28,8 @@ using namespace yup; namespace { const String kTestButtonText = "Click Me"; -const String kEmptyText = ""; -const String kLongText = "This is a very long button text that might need to be handled properly"; +const String kButtonEmptyText = ""; +const String kButtonLongText = "This is a very long button text that might need to be handled properly"; } // namespace class TextButtonTest : public ::testing::Test @@ -65,7 +65,7 @@ TEST_F (TextButtonTest, ButtonTextGetterAndSetter) textButton->setButtonText (kTestButtonText); EXPECT_EQ (kTestButtonText, textButton->getButtonText()); - textButton->setButtonText (kEmptyText); + textButton->setButtonText (kButtonEmptyText); EXPECT_TRUE (textButton->getButtonText().isEmpty()); } @@ -85,8 +85,8 @@ TEST_F (TextButtonTest, ButtonTextWithUnicode) TEST_F (TextButtonTest, LongButtonText) { - textButton->setButtonText (kLongText); - EXPECT_EQ (kLongText, textButton->getButtonText()); + textButton->setButtonText (kButtonLongText); + EXPECT_EQ (kButtonLongText, textButton->getButtonText()); } TEST_F (TextButtonTest, VeryLongButtonText) diff --git a/tests/yup_gui/yup_TextEditor.cpp b/tests/yup_gui/yup_TextEditor.cpp index 3fa5a262c..da2e9347e 100644 --- a/tests/yup_gui/yup_TextEditor.cpp +++ b/tests/yup_gui/yup_TextEditor.cpp @@ -27,7 +27,7 @@ using namespace yup; namespace { -constexpr auto kTestText = "Hello World"; +constexpr auto kSingleText = "Hello World"; constexpr auto kMultilineText = "Line 1\nLine 2\nLine 3"; } // namespace @@ -58,14 +58,14 @@ TEST_F (TextEditorTests, ConstructorInitializesCorrectly) TEST_F (TextEditorTests, SetTextUpdatesContent) { - editor->setText (kTestText); - EXPECT_EQ (String (kTestText), editor->getText()); + editor->setText (kSingleText); + EXPECT_EQ (String (kSingleText), editor->getText()); EXPECT_EQ (0, editor->getCaretPosition()); } TEST_F (TextEditorTests, CaretPositionHandling) { - editor->setText (kTestText); + editor->setText (kSingleText); editor->setCaretPosition (5); EXPECT_EQ (5, editor->getCaretPosition()); @@ -80,7 +80,7 @@ TEST_F (TextEditorTests, CaretPositionHandling) TEST_F (TextEditorTests, SelectionHandling) { - editor->setText (kTestText); + editor->setText (kSingleText); // Test setting selection editor->setSelection (Range (2, 7)); @@ -89,7 +89,7 @@ TEST_F (TextEditorTests, SelectionHandling) // Test select all editor->selectAll(); - EXPECT_EQ (String (kTestText), editor->getSelectedText()); + EXPECT_EQ (String (kSingleText), editor->getSelectedText()); // Test clearing selection editor->setCaretPosition (3); @@ -108,7 +108,7 @@ TEST_F (TextEditorTests, TextInsertion) TEST_F (TextEditorTests, TextDeletion) { - editor->setText (kTestText); + editor->setText (kSingleText); editor->setSelection (Range (6, 11)); // Select "World" editor->deleteSelectedText(); @@ -128,18 +128,18 @@ TEST_F (TextEditorTests, MultiLineMode) TEST_F (TextEditorTests, ReadOnlyMode) { - editor->setText (kTestText); + editor->setText (kSingleText); editor->setReadOnly (true); EXPECT_TRUE (editor->isReadOnly()); // Text insertion should be ignored editor->insertText (" Extra"); - EXPECT_EQ (String (kTestText), editor->getText()); + EXPECT_EQ (String (kSingleText), editor->getText()); // Selection deletion should be ignored editor->selectAll(); editor->deleteSelectedText(); - EXPECT_EQ (String (kTestText), editor->getText()); + EXPECT_EQ (String (kSingleText), editor->getText()); } TEST_F (TextEditorTests, FontHandling) diff --git a/tests/yup_gui/yup_ToggleButton.cpp b/tests/yup_gui/yup_ToggleButton.cpp index 97da73ca1..031196dfc 100644 --- a/tests/yup_gui/yup_ToggleButton.cpp +++ b/tests/yup_gui/yup_ToggleButton.cpp @@ -27,8 +27,8 @@ using namespace yup; namespace { -const String kTestButtonText = "Toggle Me"; -const String kEmptyText = ""; +const String kToggleButtonText = "Toggle Me"; +const String kToggleEmptyText = ""; } // namespace class ToggleButtonTest : public ::testing::Test @@ -89,10 +89,10 @@ TEST_F (ToggleButtonTest, ButtonTextGetterAndSetter) { EXPECT_TRUE (toggleButton->getButtonText().isEmpty()); - toggleButton->setButtonText (kTestButtonText); - EXPECT_EQ (kTestButtonText, toggleButton->getButtonText()); + toggleButton->setButtonText (kToggleButtonText); + EXPECT_EQ (kToggleButtonText, toggleButton->getButtonText()); - toggleButton->setButtonText (kEmptyText); + toggleButton->setButtonText (kToggleEmptyText); EXPECT_TRUE (toggleButton->getButtonText().isEmpty()); } @@ -122,10 +122,10 @@ TEST_F (ToggleButtonTest, LongButtonText) TEST_F (ToggleButtonTest, ToggleStateIndependentOfText) { - toggleButton->setButtonText (kTestButtonText); + toggleButton->setButtonText (kToggleButtonText); toggleButton->setToggleState (true, dontSendNotification); - EXPECT_EQ (kTestButtonText, toggleButton->getButtonText()); + EXPECT_EQ (kToggleButtonText, toggleButton->getButtonText()); EXPECT_TRUE (toggleButton->getToggleState()); toggleButton->setButtonText ("New Text"); @@ -196,21 +196,21 @@ TEST_F (ToggleButtonTest, StateAfterMultipleTextChanges) TEST_F (ToggleButtonTest, TextAfterMultipleStateChanges) { - toggleButton->setButtonText (kTestButtonText); + toggleButton->setButtonText (kToggleButtonText); for (int i = 0; i < 5; ++i) { bool state = (i % 2) == 0; toggleButton->setToggleState (state, dontSendNotification); EXPECT_EQ (state, toggleButton->getToggleState()); - EXPECT_EQ (kTestButtonText, toggleButton->getButtonText()); + EXPECT_EQ (kToggleButtonText, toggleButton->getButtonText()); } } TEST_F (ToggleButtonTest, EmptyStringHandling) { - toggleButton->setButtonText (kTestButtonText); - EXPECT_EQ (kTestButtonText, toggleButton->getButtonText()); + toggleButton->setButtonText (kToggleButtonText); + EXPECT_EQ (kToggleButtonText, toggleButton->getButtonText()); toggleButton->setButtonText (String()); EXPECT_TRUE (toggleButton->getButtonText().isEmpty()); diff --git a/tests/yup_python.cpp b/tests/yup_python.cpp new file mode 100644 index 000000000..3c0eaa96b --- /dev/null +++ b/tests/yup_python.cpp @@ -0,0 +1,2 @@ +#include "yup_python/yup_ScriptEngine.cpp" +#include "yup_python/yup_ScriptPython.cpp" From b0e997659245ef7b8eb0fafe888b7411302ecdc6 Mon Sep 17 00:00:00 2001 From: kunitoki Date: Tue, 23 Dec 2025 18:35:07 +0100 Subject: [PATCH 2/2] Fix spurious failure --- tests/yup_core/yup_Uuid.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/yup_core/yup_Uuid.cpp b/tests/yup_core/yup_Uuid.cpp index bf18b2a90..38b890b6b 100644 --- a/tests/yup_core/yup_Uuid.cpp +++ b/tests/yup_core/yup_Uuid.cpp @@ -252,9 +252,10 @@ TEST (UuidTests, GetPart) TEST (UuidTests, GetClockSeqLow) { - Uuid uuid; + uint8 rawData[16] = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef, 0x01, 0x23, 0x45, 0x67, 0x89, 0x0a, 0xbc, 0xde }; + Uuid uuid (rawData); uint8 clockSeqLow = uuid.getClockSeqLow(); - EXPECT_NE (clockSeqLow, 0); + EXPECT_EQ (clockSeqLow, 0x23); } TEST (UuidTests, FromSHA1MemoryBlock)