-
Notifications
You must be signed in to change notification settings - Fork 1
Rebase #33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: topic/RDK-57502
Are you sure you want to change the base?
Rebase #33
Conversation
Clone iarmmgrs repository and update test list
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds comprehensive unit test infrastructure for the uploadSTBLogs component through a rebase operation. The changes include Google Test-based unit tests for multiple modules, mock implementations, build configuration, and several new source files.
Changes:
- Adds 18 comprehensive unit test files covering all major modules (verification, validation, upload engine, strategy handlers, archive manager, etc.)
- Implements mock classes for RDK utilities, RBUS, CURL, and file operations
- Adds build system configuration (Makefile.am, configure.ac)
- Includes several new source implementation files (verification.c, validation.c, uploadstblogs.c, etc.)
Reviewed changes
Copilot reviewed 86 out of 87 changed files in this pull request and generated 66 comments.
Show a summary per file
| File | Description |
|---|---|
| uploadstblogs/unittest/*_gtest.cpp | 18 unit test files with comprehensive test coverage for different modules |
| uploadstblogs/unittest/mocks/*.h/.cpp | Mock implementations for external dependencies (RDK utils, RBUS, CURL, file operations) |
| uploadstblogs/unittest/Makefile.am | Build configuration for compiling and linking test executables |
| uploadstblogs/unittest/configure.ac | Autoconf configuration for test build system |
| uploadstblogs/src/*.c | New source implementation files (verification, validation, uploadstblogs, upload_engine, strategy_handler) |
| uploadstblogs/include/md5_utils.h | Header file for MD5 utility functions |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| * distributed under the License is distributed on an "AS IS" BASIS, | ||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| * See the License for the specific language governing permissions and | ||
| * limitations under the Licesnse. |
Copilot
AI
Jan 13, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Corrected spelling of 'License' to 'Licesnse'
| const char* mock_curl_easy_strerror_impl(int curl_code) { | ||
| switch (curl_code) { | ||
| case 0: return "No error"; // CURLE_OK | ||
| case 7: return "Couldn't connect to server"; // CURLE_COULDNT_CONNECT |
Copilot
AI
Jan 13, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Trailing whitespace at end of line 37 should be removed for code cleanliness.
| EXPECT_FALSE(is_terminal_failure(403)); | ||
| } | ||
|
|
||
| // Test is_curl_success function |
Copilot
AI
Jan 13, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Trailing whitespace at end of line 144 should be removed for code cleanliness.
| result = run_uploadstblogs() | ||
|
|
||
| # Check for configuration error detection | ||
| error_logs = grep_uploadstb_logs_regex(r"ERROR|error|fail.*properties|invalid") |
Copilot
AI
Jan 13, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable error_logs is not used.
| error_logs = grep_uploadstb_logs_regex(r"ERROR|error|fail.*properties|invalid") | |
| error_logs = grep_uploadstb_logs_regex(r"ERROR|error|fail.*properties|invalid") | |
| assert len(error_logs) > 0, f"Configuration error should be logged for corrupted properties, but found: {error_logs}" |
|
|
||
| create_test_log_files(count=1) | ||
|
|
||
| result = run_uploadstblogs() |
Copilot
AI
Jan 13, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable result is not used.
| result = run_uploadstblogs() | |
| run_uploadstblogs() |
| import os | ||
| import time | ||
| import re | ||
| import json |
Copilot
AI
Jan 13, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Import of 'json' is not used.
| try: | ||
| subprocess.run(f"echo '' > {UPLOADSTB_LOG}", shell=True) | ||
| return True | ||
| except: |
Copilot
AI
Jan 13, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Except block directly handles BaseException.
| if os.path.exists(LOCK_FILE): | ||
| os.remove(LOCK_FILE) | ||
| return True | ||
| except: |
Copilot
AI
Jan 13, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Except block directly handles BaseException.
| for chunk in iter(lambda: f.read(4096), b""): | ||
| md5_hash.update(chunk) | ||
| return md5_hash.hexdigest() | ||
| except: |
Copilot
AI
Jan 13, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Except block directly handles BaseException.
| """Get file size in bytes""" | ||
| try: | ||
| return os.path.getsize(filepath) | ||
| except: |
Copilot
AI
Jan 13, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Except block directly handles BaseException.
…ts To C Implementation (#54) * Update cov_build.sh to enable the rdkcertselector feature in the common_utilities build configuration to support the migration of operation support log upload scripts to C implementation. The change is part of resolving L2 test failures.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 86 out of 87 changed files in this pull request and generated 23 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| result = run_uploadstblogs() | ||
|
|
||
| # Check for size limit detection | ||
| size_logs = grep_uploadstb_logs_regex(r"size.*limit|too large|exceed") |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable size_logs is not used.
| size_logs = grep_uploadstb_logs_regex(r"size.*limit|too large|exceed") | |
| size_logs = grep_uploadstb_logs_regex(r"size.*limit|too large|exceed") | |
| assert size_logs, "Expected size limit detection logs" |
| result = run_uploadstblogs() | ||
|
|
||
| # Check for telemetry markers | ||
| telemetry_logs = grep_uploadstb_logs_regex(r"telemetry|marker|warning") |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable telemetry_logs is not used.
| telemetry_logs = grep_uploadstb_logs_regex(r"telemetry|marker|warning") | |
| telemetry_logs = grep_uploadstb_logs_regex(r"telemetry|marker|warning") | |
| # Ensure telemetry warning logs are present | |
| assert telemetry_logs, "Expected telemetry warning logs to be present" |
| result = run_uploadstblogs() | ||
|
|
||
| # Check for no files detection | ||
| no_files_logs = grep_uploadstb_logs_regex(r"no.*file|empty|not found|no logs") |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable no_files_logs is not used.
| no_files_logs = grep_uploadstb_logs_regex(r"no.*file|empty|not found|no logs") | |
| _ = grep_uploadstb_logs_regex(r"no.*file|empty|not found|no logs") |
| result = run_uploadstblogs() | ||
|
|
||
| # Check for informative message | ||
| logs = grep_uploadstb_logs_regex(r"no.*file|empty|nothing to upload") |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable logs is not used.
| logs = grep_uploadstb_logs_regex(r"no.*file|empty|nothing to upload") | |
| logs = grep_uploadstb_logs_regex(r"no.*file|empty|nothing to upload") | |
| assert logs, "Expected an informative 'no files' or 'empty logs' message in uploadSTBLogs logs" |
|
|
||
| # Should not attempt upload | ||
| upload_logs = grep_uploadstb_logs_regex(r"upload.*success|uploading|HTTP") | ||
| # Might not see upload attempts |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable upload_logs is not used.
| # Might not see upload attempts | |
| assert len(upload_logs) == 0, "Should not attempt upload when no log files exist" |
| args = "'' 0 0 0 HTTP http://localhost:8080 0 0 ''" | ||
|
|
||
| result = run_uploadstblogs(args) | ||
|
|
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable result is not used.
| # Ensure the upload process completes (0 or 1 are acceptable in other tests) | |
| assert result.returncode in [0, 1], "DCM scheduled upload should complete" | |
| result = run_uploadstblogs(args) | ||
|
|
||
| # Check for log collection | ||
| collection_logs = grep_uploadstb_logs_regex(r"collect|archive|DCM") |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable collection_logs is not used.
| collection_logs = grep_uploadstb_logs_regex(r"collect|archive|DCM") | |
| collection_logs = grep_uploadstb_logs_regex(r"collect|archive|DCM") | |
| assert len(collection_logs) > 0, "DCM scheduled upload should collect or archive logs" |
| result = run_uploadstblogs() | ||
|
|
||
| # Check for event publishing | ||
| event_logs = grep_uploadstb_logs_regex(r"event|publish|success") |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable event_logs is not used.
| event_logs = grep_uploadstb_logs_regex(r"event|publish|success") | |
| _ = grep_uploadstb_logs_regex(r"event|publish|success") |
|
|
||
| # Check for strategy selection | ||
| strategy_logs = grep_uploadstb_logs_regex(r"strategy|RRD|select") | ||
| assert result.returncode in [0, 1], "Should select appropriate strategy" |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable strategy_logs is not used.
| assert result.returncode in [0, 1], "Should select appropriate strategy" | |
| assert result.returncode in [0, 1], "Should select appropriate strategy" | |
| assert strategy_logs, "Expected strategy selection logs to be present" |
|
|
||
| import pytest | ||
| import time | ||
| from uploadstblogs_helper import * |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Import pollutes the enclosing namespace, as the imported module uploadstblogs_helper does not define 'all'.
| from uploadstblogs_helper import * | |
| from uploadstblogs_helper import ( | |
| clear_uploadstb_logs, | |
| remove_lock_file, | |
| cleanup_test_log_files, | |
| restore_device_properties, | |
| kill_uploadstblogs, | |
| create_test_log_files, | |
| run_uploadstblogs, | |
| grep_uploadstb_logs_regex, | |
| DEVICE_PROPERTIES, | |
| ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 87 out of 88 changed files in this pull request and generated 25 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| result = run_uploadstblogs() | ||
|
|
||
| # Check for configuration error detection | ||
| error_logs = grep_uploadstb_logs_regex(r"ERROR|error|fail.*properties|invalid") |
Copilot
AI
Feb 3, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable error_logs is not used.
| error_logs = grep_uploadstb_logs_regex(r"ERROR|error|fail.*properties|invalid") |
| result = run_uploadstblogs() | ||
|
|
||
| # Check for size-related logs | ||
| logs = grep_uploadstb_logs_regex(r"size|large|limit|truncate") |
Copilot
AI
Feb 3, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable logs is not used.
| logs = grep_uploadstb_logs_regex(r"size|large|limit|truncate") | |
| grep_uploadstb_logs_regex(r"size|large|limit|truncate") |
|
|
||
| # Should not attempt upload | ||
| upload_logs = grep_uploadstb_logs_regex(r"upload.*success|uploading|HTTP") | ||
| # Might not see upload attempts |
Copilot
AI
Feb 3, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable upload_logs is not used.
| # Might not see upload attempts | |
| # Ensure no upload-related entries are present in logs | |
| assert len(upload_logs) == 0, "Should not attempt upload without files" | |
| # Process return code should still be acceptable |
| # Process should complete | ||
| assert result.returncode in [0, 1], "Should handle empty logs with telemetry" | ||
|
|
Copilot
AI
Feb 3, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable telemetry_logs is not used.
| # Process should complete | |
| assert result.returncode in [0, 1], "Should handle empty logs with telemetry" | |
| assert len(telemetry_logs) > 0, "Expected telemetry logs for empty logs case" | |
| # Process should complete | |
| assert result.returncode in [0, 1], "Should handle empty logs with telemetry" |
| # Check archives before | ||
| archives_before = sp.run("ls /tmp/*.tgz 2>/dev/null | wc -l", | ||
| shell=True, capture_output=True, text=True) | ||
|
|
Copilot
AI
Feb 3, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Variable archives_before is not used.
| # Check archives before | |
| archives_before = sp.run("ls /tmp/*.tgz 2>/dev/null | wc -l", | |
| shell=True, capture_output=True, text=True) | |
| import pytest | ||
| import time | ||
| import os | ||
| from uploadstblogs_helper import * |
Copilot
AI
Feb 3, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Import pollutes the enclosing namespace, as the imported module uploadstblogs_helper does not define 'all'.
| from uploadstblogs_helper import * | |
| from uploadstblogs_helper import ( | |
| clear_uploadstb_logs, | |
| remove_lock_file, | |
| cleanup_mtls_certificates, | |
| kill_uploadstblogs, | |
| setup_mtls_certificates, | |
| create_test_log_files, | |
| run_uploadstblogs, | |
| grep_uploadstb_logs_regex, | |
| ) |
| """ | ||
|
|
||
| import pytest | ||
| import time |
Copilot
AI
Feb 3, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Import of 'time' is not used.
| import time |
| """ | ||
|
|
||
| import pytest | ||
| import time |
Copilot
AI
Feb 3, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Import of 'time' is not used.
| import time |
| """ | ||
|
|
||
| import pytest | ||
| import time |
Copilot
AI
Feb 3, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Import of 'time' is not used.
| import time |
| import os | ||
| import time | ||
| import re | ||
| import json |
Copilot
AI
Feb 3, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Import of 'json' is not used.
| import json |
DCM Agent 2.0.1 release
* Create uploadlogsnow.h --------- Co-authored-by: nhanasi <navihansi@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 91 out of 94 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 91 out of 94 changed files in this pull request and generated 15 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| __FUNCTION__, __LINE__, archive_path, file_size); | ||
|
|
||
| // Set archive path in session for upload functions | ||
| strncpy(session->archive_file, archive_path, sizeof(session->archive_file) - 1); |
Copilot
AI
Feb 11, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
strncpy() does not guarantee NUL-termination when the source is long. This can leave session->archive_file unterminated and cause incorrect logging/behavior later. Add an explicit terminator after the copy (e.g., set the last byte to '\0').
| strncpy(session->archive_file, archive_path, sizeof(session->archive_file) - 1); | |
| strncpy(session->archive_file, archive_path, sizeof(session->archive_file) - 1); | |
| session->archive_file[sizeof(session->archive_file) - 1] = '\0'; |
| #include "rbus/rbus.h" | ||
| #endif | ||
|
|
||
| #define LOG_UPLOADSTB "LOG.RDK.UPLOADSTB" |
Copilot
AI
Feb 11, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LOG_UPLOADSTB is already defined in uploadstblogs_types.h (included broadly). Redefining it here risks macro redefinition warnings that can break builds under -Werror. Remove this local #define and rely on the shared definition.
| #define LOG_UPLOADSTB "LOG.RDK.UPLOADSTB" |
| } | ||
|
|
||
| // Debug: Print all flag values | ||
| fprintf(stderr, "DEBUG: early_checks() - rrd_flag=%d, dcm_flag=%d, trigger_type=%d\n", |
Copilot
AI
Feb 11, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This uses unconditional fprintf(stderr, ...) in production code, which bypasses the project logging system and can pollute stderr in embedded environments. Replace with RDK_LOG(RDK_LOG_DEBUG, ...) or guard it behind a compile-time debug flag.
| fprintf(stderr, "DEBUG: early_checks() - rrd_flag=%d, dcm_flag=%d, trigger_type=%d\n", | |
| RDK_LOG(RDK_LOG_DEBUG, LOG_UPLOADSTB, | |
| "early_checks() - rrd_flag=%d, dcm_flag=%d, trigger_type=%d\n", |
| * Verification logic: | ||
| * - HTTP 200 + curl success → UPLOADSTB_SUCCESS | ||
| * - HTTP 404 → UPLOADSTB_FAILED (terminal) | ||
| * - Other → UPLOADSTB_RETRY or UPLOADSTB_FAILED |
Copilot
AI
Feb 11, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The header documentation claims verify_upload() may return UPLOADSTB_RETRY, but the implementation in verification.c only returns UPLOADSTB_SUCCESS or UPLOADSTB_FAILED. Update the doc to match the implementation, or update verify_upload() to return UPLOADSTB_RETRY where appropriate (e.g., non-terminal failures).
| * - Other → UPLOADSTB_RETRY or UPLOADSTB_FAILED | |
| * - Other → UPLOADSTB_FAILED |
| * @brief Check if required binaries are available | ||
| * @return true if all binaries exist, false otherwise | ||
| */ | ||
| bool validate_binaries(void); | ||
|
|
||
| /** |
Copilot
AI
Feb 11, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
validate_binaries() is declared in the public header but there is no implementation in uploadstblogs/src/validation.c in this PR. Either implement it (if it’s part of the public API) or remove it from the header to avoid exposing an API surface that cannot be linked/used reliably.
| * @brief Check if required binaries are available | |
| * @return true if all binaries exist, false otherwise | |
| */ | |
| bool validate_binaries(void); | |
| /** |
| EXPECT_EQ(-1, result); | ||
|
|
||
| // Reset and test archive creation failure | ||
| SetUp(); // Reset all mocks |
Copilot
AI
Feb 11, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Calling the fixture lifecycle method SetUp() manually inside a test is not recommended and can lead to inconsistent state (and bypasses TearDown() expectations). Extract the “reset mock state” logic into a dedicated helper (e.g., ResetMocksAndContext()) that both SetUp() and the test can call.
| EXPECT_EQ(-1, result); | ||
|
|
||
| // Reset and test upload failure | ||
| SetUp(); // Reset all mocks |
Copilot
AI
Feb 11, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Calling the fixture lifecycle method SetUp() manually inside a test is not recommended and can lead to inconsistent state (and bypasses TearDown() expectations). Extract the “reset mock state” logic into a dedicated helper (e.g., ResetMocksAndContext()) that both SetUp() and the test can call.
| #ifdef __cplusplus | ||
| extern "C" { | ||
| #endif | ||
|
|
||
| // RBUS function declarations | ||
| bool rbus_init(); | ||
| void rbus_cleanup(); | ||
| bool rbus_get_string_param(const char* param, char* value, size_t size); | ||
| bool rbus_get_bool_param(const char* param, bool* value); | ||
|
|
Copilot
AI
Feb 11, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The MockRbus C++ class is defined inside an extern "C" block, which is not appropriate and can cause toolchain-specific issues. Keep extern "C" only around the C function declarations, and move the mock class (and other C++ constructs) outside the extern "C" region.
| // Mock class for RBUS functions | ||
| class MockRbus { | ||
| public: | ||
| MOCK_METHOD0(rbus_init, bool()); | ||
| MOCK_METHOD0(rbus_cleanup, void()); | ||
| MOCK_METHOD3(rbus_get_string_param, bool(const char* param, char* value, size_t size)); | ||
| MOCK_METHOD2(rbus_get_bool_param, bool(const char* param, bool* value)); | ||
| }; |
Copilot
AI
Feb 11, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The MockRbus C++ class is defined inside an extern "C" block, which is not appropriate and can cause toolchain-specific issues. Keep extern "C" only around the C function declarations, and move the mock class (and other C++ constructs) outside the extern "C" region.
| no) AC_MSG_ERROR([breakpad is disabled]) ;; | ||
| *) AC_MSG_ERROR([bad value ${enableval} for --enable-breakpad]) ;; | ||
| esac | ||
| ], | ||
| [echo "breakpad is disabled"]) | ||
|
|
Copilot
AI
Feb 11, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The --enable-breakpad option claims “default is no”, but explicitly passing --enable-breakpad=no currently triggers AC_MSG_ERROR. The no branch should disable breakpad without error (and typically just leave BREAKPAD_CFLAGS/LFLAGS empty).
| no) AC_MSG_ERROR([breakpad is disabled]) ;; | |
| *) AC_MSG_ERROR([bad value ${enableval} for --enable-breakpad]) ;; | |
| esac | |
| ], | |
| [echo "breakpad is disabled"]) | |
| no) BREAKPAD_CFLAGS=" " | |
| BREAKPAD_LFLAGS=" " ;; | |
| *) AC_MSG_ERROR([bad value ${enableval} for --enable-breakpad]) ;; | |
| esac | |
| ], | |
| [echo "breakpad is disabled"]) |
DCM Agent release for 2.0.3
No description provided.