Skip to content

Conversation

@AstroAir
Copy link
Member

  • Implemented tests for IPv4, IPv6, and Unix Domain socket addresses.
  • Added functionality to demonstrate address creation, equality checks, range inclusion, and subnet operations.
  • Included exception handling tests for invalid address formats and address range errors.
  • Created a comprehensive example showcasing the usage of address classes and their methods.
  • Enhanced output formatting for better readability during test execution.

AstroAir and others added 3 commits August 20, 2025 16:52
- Introduced MimeTypeException for error handling in MIME type operations.
- Created MimeTypeConfig struct for configuration options.
- Implemented MimeTypes class with methods for reading, guessing, adding, and exporting MIME types.
- Added support for both JSON and XML file formats for MIME type management.
- Included caching options and deep content scanning capabilities.
- Provided functionality to check registered MIME types and extensions.
- Implemented tests for IPv4, IPv6, and Unix Domain socket addresses.
- Added functionality to demonstrate address creation, equality checks, range inclusion, and subnet operations.
- Included exception handling tests for invalid address formats and address range errors.
- Created a comprehensive example showcasing the usage of address classes and their methods.
- Enhanced output formatting for better readability during test execution.
@AstroAir AstroAir self-assigned this Aug 23, 2025
AstroAir and others added 5 commits August 23, 2025 17:07
- Implemented AtomModularInstaller class for intelligent modular installation with dependency resolution and conflict detection.
- Added methods for detecting platform and architecture, downloading, extracting, installing, and uninstalling components.
- Introduced dependency management and conflict checking for installed components.
- Created a comprehensive PackageValidator class to validate package integrity, dependencies, and installation correctness.
- Included validation checks for package structure, integrity, dependencies, and installation tests.
- Enhanced logging for better traceability during installation and validation processes.
- Updated error handling in fnmatch tests to access error codes correctly.
- Removed main functions from multiple test files, utilizing gtest_main instead.
- Changed random byte generation functions to inline for better performance.
- Enhanced message bus and queue tests by adjusting setup methods.
- Modified promise tests to use the correct Promise class instead of EnhancedPromise.
- Improved signal tests by replacing BroadcastSignal with ChainedSignal.
- Updated various tests to handle exceptions more accurately, replacing std::bad_variant_access with atom::error::InvalidArgument.
- Cleaned up CMakeLists.txt files to remove unnecessary main files and improve organization.
- Added new test files for SSH server and a minimal test runner for the utils module.
- Disabled several tests in the image module due to unimplemented methods.
…ection

- Implemented `integration_example.cpp` demonstrating web crawler integration, file downloads with analysis, network service discovery, and API client integration.
- Created `minetype_comprehensive_example.cpp` showcasing advanced features of the Atom MimeTypes class, including basic MIME type detection, URL detection, extension guessing, content-based detection, custom MIME types, known files feature, and listing all types.
- Enhanced logging and error handling throughout both examples.
- Organized output for better readability and understanding of MIME type functionalities.
AstroAir and others added 20 commits August 26, 2025 11:19
… integration of thread pool and message queue, optimize custom serialization examples, and update the target name of the CMake build
- Implemented a series of unit tests for the facade system, covering constraint validation, proxy operations, and thread safety.
- Added tests for proxy behavior with different implementations, including copy/move semantics and error handling.
- Developed reflection tests to validate the TStr template string system, ElemList operations, and TypeInfo structure.
- Included tests for field and attribute metadata extraction, inheritance hierarchy reflection, and edge cases.
- Ensured compile-time validation of reflection information and integration with type_info system.
…nctionalities

- Implemented unit tests for ProcessManager including process creation, termination, existence checking, and output retrieval.
- Added tests for error handling scenarios in ProcessManager.
- Developed tests for Stat class covering file existence, type detection, size, timestamps, permissions, and ownership.
- Included performance tests for Stat operations on multiple files and edge cases for large and special character filenames.
- Created StorageMonitor tests to validate callback registration, storage path management, and new media detection.
- Added error handling tests for invalid paths and filesystem errors in StorageMonitor.
- Enhanced performance tests for callback execution in StorageMonitor.
…ities

- Implemented comprehensive unit tests for DownloadManager in test_downloader.hpp, covering task management, download operations, error handling, and progress tracking.
- Created integration tests in test_integration.hpp to validate web crawling, API client interactions, download manager functionality, network service discovery, HTTP parsing, and MIME type analysis.
- Ensured tests handle various scenarios including valid and invalid URLs, concurrent downloads, and file system operations.
- Incorporated checks for internet connectivity and proper cleanup of temporary files after tests.
…ake configuration

- Removed detailed error logging in VariableManager to prevent formatting issues with std::vector.
- Updated CMakeLists.txt to set policy for FindBoost module.
- Initialized empty messages for pending operations in MQTT client subscribe and unsubscribe methods.
- Added [[maybe_unused]] annotations to suppress warnings for unused variables in various files.
- Updated example files to reflect changes in command execution methods and improved documentation for AsyncWorkerManager usage.
- Updated command registration in `component.template` to cast the return value of `def` to void for clarity.
- Modified command execution in example files to use `runCommand` instead of `executeCommand`, enhancing consistency and readability.
- Improved position update logic in `advanced_bindings_example.cpp` for better clarity and performance.
- Adjusted lifecycle methods in `basic_component_lifecycle.cpp` to remove unnecessary overrides and ensure proper state management.
- Implement tests for getting and setting system time, including edge cases and error handling.
- Validate NTP time retrieval with various hostnames and timeout settings.
- Ensure thread safety with concurrent operations.
- Test move semantics for TimeManager.
- Include stress tests to verify stability under rapid operations.
- Cover leap year handling and timezone edge cases.
- Introduced comprehensive tests for the atom components, covering core functionality, variable management, command system, error handling, registry operations, lifecycle management, and performance testing.
- Added simple boost-style tests to validate standard library functionality without actual boost dependencies.
- Created simplified memory tests focusing on basic memory pool and object pool functionality, exception handling, and memory alignment.
- Implemented alternative memory tests that bypass complex initialization, testing basic allocation, smart pointers, vector memory management, and exception safety.
- Updated CMakeLists for memory tests to streamline dependencies and configurations.
…hitecture details

- Add Component Architecture Pattern section explaining Registry and LifecycleManager systems
- Document all available CMake presets (debug, release, platform-specific variants)
- Enhance build script documentation with new options (--install-deps, --package, --clean)
- Add comprehensive XMake usage examples with test and install commands
- Document modular installation system using Python installer script
- Clarify testing workflows for both CMake and XMake build systems
- Update module structure documentation to include xmake.lua files
- Add system dependency auto-installation features documentation
- Enhanced .gitignore with comprehensive C++/Python patterns
- Fixed CMakeLists.txt build configurations and dependencies
- Updated core library components (async, io, utils, crypto)
- Refactored test suite with improved coverage and cleanup
- Removed temporary test files and outdated verification code
- Added Python package structure and improved build scripts
- Standardized code formatting and documentation across modules
- Implemented unit tests for enhanced stacktrace functionality in `test_enhanced_stacktrace.cpp`, covering stack frame formatting, configuration options, backend availability, and utility functions.
- Developed unit tests for error formatting in `test_error_formatting.cpp`, including plain text, JSON, colored, HTML, and structured formatters, along with options and factory tests.
- Created integration tests in `test_error_integration.cpp` to validate the complete error handling system, including end-to-end error flow, concurrent error reporting, error recovery strategies, and performance benchmarks.
- Ensured thorough coverage of error context management and formatting performance, verifying the system's robustness and efficiency under various scenarios.
- Removed CMakeLists_simple_test.txt and CMakeLists_test.txt (temporary build configs)
- Removed test_basic_cpp.cpp (basic C++ build verification test)
- Removed test_directorystack_minimal.cpp and test_directorystack_simple.cpp (ASIO debugging tests)
- These files were temporary debugging artifacts not part of main project structure
- Removed experimental test files: test/01.cpp, test/a.cpp, test/aa.cpp
- Removed test/output/ directory and compiled artifacts
- Cleaned up build artifacts (.exe, .o, .dll files) outside build directory
- Removed .cache/ directory with clangd index files
- Updated CMakeLists.txt to remove reference to deleted test_basic_cpp.cpp
- Repository is now clean of temporary and redundant files
…t cleanup

- All current build system improvements and fixes
- Module standardization work completed
- Test system enhancements
- Ready for unused module cleanup phase
…script for test coverage

- Implemented a new test suite for socket operations in `test_socket.hpp`, covering initialization, creation, binding, non-blocking mode, connection timeouts, performance, and error handling.
- Added a PowerShell script `validate_test_coverage.ps1` to validate test file existence, analyze test file sizes, compile tests, and generate a detailed report on test coverage and features.
- Enhanced test coverage with over 400 test cases, ensuring robust validation of the Atom Web module's socket functionalities and overall integration.
Core Library Fixes:
- Fix memory pool class usage in async_logger.cpp
  * Changed from MemoryPool to FixedBlockPool with correct template signature
  * Updated include from atom/memory/memory.hpp to atom/memory/memory_pool.hpp
  * Fixed all references to use FixedBlockPool<BLOCK_SIZE, MAX_BLOCKS>

- Fix include paths in memory.cpp and wifi.cpp
  * Updated memory.cpp: ../memory.hpp -> ../../hardware/memory.hpp
  * Updated wifi.cpp: wifi.hpp -> ../../network/wifi.hpp
  * Resolved references to deleted header files

Example Fixes:
- Fix missing cmath include in exif_operations.cpp
  * Added #include <cmath>
  * Changed log2 to std::log2 for proper namespace qualification

- Add default constructor to FormatInfo struct in advanced_formats.cpp
  * Added FormatInfo() = default to enable std::map initialization

- Disable examples with missing headers or API mismatches
  * Commented out ocr_comprehensive (Blob API mismatch)
  * Commented out realtime_processing (missing camera_capture.hpp)
  * Commented out computer_vision_advanced (missing feature_detection.hpp)
  * Commented out batch_processing_demo (missing batch_processor.hpp)
  * Commented out performance_optimization_demo (missing performance_profiler.hpp)
  * Commented out streaming_io_demo (missing streaming_reader.hpp)
  * Commented out memory_mapped_io (missing memory_mapped_file.hpp)
  * Commented out format_conversion_edge_cases (missing format_converter.hpp)
  * Commented out ser_quality_assessment (API mismatch)
  * Commented out ser_registration_stacking (API mismatch)

Build Status:
- Core library builds successfully (67/67 targets)
- All modified files pass diagnostics checks
- No compilation errors
- Remove atom/sysinfo/hardware/memory/memory.hpp (deleted, moved to parent directory)
- Remove atom/sysinfo/network/wifi/wifi.hpp (deleted, moved to parent directory)
- Add stub implementations for HDR, vector, microscopy, and satellite format methods in advanced_formats.cpp

These changes complete the header file reorganization started in the previous commit.
This commit includes extensive refactoring and improvements across the codebase:

Code Improvements:
- Enhanced async execution with better error handling and thread safety
- Improved component pool implementation with better memory management
- Updated I/O operations with more robust error handling
- Enhanced image processing with stub implementations for missing features
- Improved memory management utilities

Test Updates:
- Removed obsolete test files (test_*_extended.cpp, test_*_simple.cpp)
- Updated test CMakeLists.txt files for better organization
- Enhanced existing tests with better coverage
- Removed duplicate and redundant test implementations

Build System:
- Updated CMakeLists.txt files across modules
- Improved xmake.lua configurations
- Better dependency management

Documentation:
- Updated TestingGuide.md with comprehensive testing instructions
- Added test runner scripts (run_tests.bat, run_tests.sh)

This refactoring maintains backward compatibility while improving
code quality, test coverage, and build system organization.

Files changed: 203
Insertions: 11,618
Deletions: 10,124
Add patterns to ignore temporary test debug files:
- test_*.cpp
- test_*.c

This prevents debug/temporary test files from being tracked in git.
Build System:
- Add xmake.lua configuration files for all modules (14 files)
- Add cmake/version.h.in template for version header generation
- Add utility scripts for testing and GTest management

New Features:
- Add image cache manager (atom/image/core/cache_manager.hpp)
- Add image exceptions handling (atom/image/core/exceptions.hpp)
- Add image metadata support (atom/image/core/image_metadata.hpp)
- Add realtime processing stub (atom/image/processing/realtime_stub.cpp)
- Add path utilities (atom/io/core/path_utils.hpp)
- Add memory tracker (atom/memory/tracker.cpp)

Test Infrastructure:
- Add test header files for image module (4 files)
- Add PowerShell test scripts (3 files)

Configuration:
- Update .gitignore to exclude vendored nlohmann JSON library
- Update .gitignore to exclude temporary documentation files

This commit adds xmake as an alternative build system alongside CMake,
providing more flexibility for developers. New infrastructure components
support enhanced image processing, caching, and memory tracking.

Files added: 27
Files modified: 1
@AstroAir AstroAir force-pushed the chore/build-fixes-2025-08-21 branch from 00cf469 to 5ac3fbc Compare October 17, 2025 04:59
@sonarqubecloud
Copy link

Please retry analysis of this Pull-Request directly on SonarQube Cloud

SslCipherContext ctx;

// Initialize encryption
if (EVP_EncryptInit_ex(ctx, EVP_aes_256_cbc(), nullptr, key.data(),

Check failure

Code scanning / SonarCloud

Encryption algorithms should be used with secure mode and padding scheme High

Use a secure mode and padding scheme. See more on SonarQube Cloud
SslCipherContext ctx;

// Initialize decryption
if (EVP_DecryptInit_ex(ctx, EVP_aes_256_cbc(), nullptr, key.data(),

Check failure

Code scanning / SonarCloud

Encryption algorithms should be used with secure mode and padding scheme High

Use a secure mode and padding scheme. See more on SonarQube Cloud
case EncryptionOptions::Method::AES_GCM:
return EVP_aes_256_gcm();
case EncryptionOptions::Method::AES_CBC:
return EVP_aes_256_cbc();

Check failure

Code scanning / SonarCloud

Encryption algorithms should be used with secure mode and padding scheme High

Use a secure mode and padding scheme. See more on SonarQube Cloud
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants