From 98ad63eda147f996bafc61c00cbd18f952f43919 Mon Sep 17 00:00:00 2001 From: aangerma Date: Mon, 1 Feb 2021 22:33:21 +0200 Subject: [PATCH 1/3] fixes --- unit-tests/func/send-hw-monitor-command.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/unit-tests/func/send-hw-monitor-command.h b/unit-tests/func/send-hw-monitor-command.h index 6a9c97edc4..ab80660fa0 100644 --- a/unit-tests/func/send-hw-monitor-command.h +++ b/unit-tests/func/send-hw-monitor-command.h @@ -2,9 +2,10 @@ // Copyright(c) 2020 Intel Corporation. All Rights Reserved. #include "../test.h" -#include "librealsense2/rs.hpp" -#include "hw-monitor.h" +#include +#include +#pragma once using namespace rs2; struct hw_monitor_command @@ -26,7 +27,7 @@ struct hw_monitor_command int p4; }; -std::vector< uint8_t > send_command_and_check( rs2::debug_protocol dp, +inline std::vector< uint8_t > send_command_and_check( rs2::debug_protocol dp, hw_monitor_command command, uint32_t expected_size_return = 0 ) { From 067df0168cb894bde3806d64ccd41d05d212f314 Mon Sep 17 00:00:00 2001 From: aangerma Date: Tue, 2 Feb 2021 13:08:52 +0200 Subject: [PATCH 2/3] wait for first frame on tests make the presets sanity while streaming test shorter --- unit-tests/func/presets/presets-common.h | 45 ++++++++++++------- .../test-presets-sanity-while-streaming.cpp | 2 + .../func/presets/test-presets-sanity.cpp | 4 ++ 3 files changed, 35 insertions(+), 16 deletions(-) diff --git a/unit-tests/func/presets/presets-common.h b/unit-tests/func/presets/presets-common.h index d636b7df8f..1b6f0ac6e4 100644 --- a/unit-tests/func/presets/presets-common.h +++ b/unit-tests/func/presets/presets-common.h @@ -10,7 +10,7 @@ using namespace rs2; -const librealsense::firmware_version MIN_GET_DEFAULT_FW_VERSION( "1.5.3.0" ); +const librealsense::firmware_version MIN_GET_DEFAULT_FW_VERSION( "1.5.4.0" ); typedef std::pair< rs2_l500_visual_preset, rs2_sensor_mode > preset_mode_pair; @@ -368,7 +368,8 @@ void check_preset_values( const rs2::sensor & sens, compare_to_actual( sens, expected_values, expected_defaults ); } -void check_presets_values( const rs2::sensor & sens, +void check_presets_values( std::vector< rs2_l500_visual_preset > presets_to_check, + const rs2::sensor & sens, preset_values_map & preset_to_expected_values, preset_values_map & preset_to_expected_defaults, std::function< void( preset_mode_pair ) > do_before_check = nullptr, @@ -376,19 +377,25 @@ void check_presets_values( const rs2::sensor & sens, { REQUIRE( sens.supports( RS2_OPTION_VISUAL_PRESET ) ); - for_each_preset_mode_combination( [&]( preset_mode_pair preset_mode ) { - if( do_before_check ) - do_before_check( preset_mode ); - - check_preset_values( sens, - preset_mode.first, - preset_mode.second, - preset_to_expected_values[preset_mode], - preset_to_expected_defaults[preset_mode] ); - - if( do_after_check ) - do_after_check( preset_mode ); - } ); + for (auto& preset : presets_to_check) + { + for (int sensor_mode = RS2_SENSOR_MODE_VGA; sensor_mode < RS2_SENSOR_MODE_QVGA; + sensor_mode++) + { + preset_mode_pair preset_mode = { preset, (rs2_sensor_mode)sensor_mode }; + if (do_before_check) + do_before_check(preset_mode); + + check_preset_values(sens, + preset_mode.first, + preset_mode.second, + preset_to_expected_values[preset_mode], + preset_to_expected_defaults[preset_mode]); + + if (do_after_check) + do_after_check(preset_mode); + } + } } void start_depth_ir_confidence( const rs2::sensor & sens, @@ -399,7 +406,11 @@ void start_depth_ir_confidence( const rs2::sensor & sens, auto confidence = find_profile( sens, RS2_STREAM_CONFIDENCE, mode ); REQUIRE_NOTHROW( sens.open( { depth, ir, confidence } ) ); - REQUIRE_NOTHROW( sens.start( [&]( rs2::frame f ) {} ) ); + + frame_queue q; + REQUIRE_NOTHROW(sens.start(q)); + + q.wait_for_frame(); } void stop_depth( const rs2::sensor & sens ) @@ -416,6 +427,7 @@ void set_mode_preset( const rs2::sensor & sens, preset_mode_pair preset_mode) } void check_presets_values_while_streaming( + std::vector presets_to_check, const rs2::sensor & sens, preset_values_map & preset_to_expected_values, preset_values_map & preset_to_expected_defaults, @@ -425,6 +437,7 @@ void check_presets_values_while_streaming( REQUIRE( sens.supports( RS2_OPTION_VISUAL_PRESET ) ); check_presets_values( + presets_to_check, sens, preset_to_expected_values, preset_to_expected_defaults, diff --git a/unit-tests/func/presets/test-presets-sanity-while-streaming.cpp b/unit-tests/func/presets/test-presets-sanity-while-streaming.cpp index 2a5a7da17e..ed3eb3302b 100644 --- a/unit-tests/func/presets/test-presets-sanity-while-streaming.cpp +++ b/unit-tests/func/presets/test-presets-sanity-while-streaming.cpp @@ -24,6 +24,7 @@ TEST_CASE( "presets sanity while streaming", "[l500][live]" ) // set preset and mode before stream start check_presets_values_while_streaming( + { RS2_L500_VISUAL_PRESET_NO_AMBIENT, RS2_L500_VISUAL_PRESET_LOW_AMBIENT }, depth_sens, expected_values, expected_defs, @@ -31,6 +32,7 @@ TEST_CASE( "presets sanity while streaming", "[l500][live]" ) // set preset and mode after stream start check_presets_values_while_streaming( + { RS2_L500_VISUAL_PRESET_MAX_RANGE, RS2_L500_VISUAL_PRESET_SHORT_RANGE }, depth_sens, expected_values, expected_defs, diff --git a/unit-tests/func/presets/test-presets-sanity.cpp b/unit-tests/func/presets/test-presets-sanity.cpp index 362bd254f7..55315074d3 100644 --- a/unit-tests/func/presets/test-presets-sanity.cpp +++ b/unit-tests/func/presets/test-presets-sanity.cpp @@ -23,6 +23,10 @@ TEST_CASE( "presets sanity", "[l500][live]" ) //print_presets_to_csv( depth_sens, preset_to_expected_defaults_map); check_presets_values( + { RS2_L500_VISUAL_PRESET_NO_AMBIENT, + RS2_L500_VISUAL_PRESET_LOW_AMBIENT, + RS2_L500_VISUAL_PRESET_MAX_RANGE, + RS2_L500_VISUAL_PRESET_SHORT_RANGE }, depth_sens, expected_values, expected_defs, From 649dfaa6cfede5d2cd7987082990e0d9dafb0f08 Mon Sep 17 00:00:00 2001 From: Eran Date: Tue, 2 Feb 2021 18:08:49 +0200 Subject: [PATCH 3/3] Update presets-common.h --- unit-tests/func/presets/presets-common.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/unit-tests/func/presets/presets-common.h b/unit-tests/func/presets/presets-common.h index 1b6f0ac6e4..fca7ec9938 100644 --- a/unit-tests/func/presets/presets-common.h +++ b/unit-tests/func/presets/presets-common.h @@ -407,9 +407,10 @@ void start_depth_ir_confidence( const rs2::sensor & sens, REQUIRE_NOTHROW( sens.open( { depth, ir, confidence } ) ); + // Wait for the first frame to arrive: until this time, the FW is in an "undefined" + // streaming state, and we may get weird behavior. frame_queue q; REQUIRE_NOTHROW(sens.start(q)); - q.wait_for_frame(); } @@ -478,4 +479,4 @@ void build_new_device_and_do( std::function< void( rs2::depth_sensor & depth_sen auto depth_sens = dev.first< rs2::depth_sensor >(); action( depth_sens ); -} \ No newline at end of file +}