Tested changes:
[Richard Cochran ag6qr@sonic.net] [ft2900] Fix cross tone when channel entered via Radio panel (#2445) This submission makes FT-2900 cross tone support more robust, and protects against a problem where the radio would sometimes use the high order bit of the tone and/or DTCS code field as a bit flag. The code had been using the entire byte as an index into the TONES or DTCS_CODES array, and when the high order bit was set, the value was too high by 128, resulting an array bounds error. Fix is to alter MEM_FORMAT to separate the high order bit flags from the lower 7 bit tone and code fields. This also adds some error checking via a "try" block to catch any remaining array bounds errors (though none are expected). And it adds code which attempts to set those bit flags the way the radio would have set them, even though the flags seem to have no effect on the way the radio transmits or receives.
Thanks to Chris Fosnight for finding and reporting the problem.
[Marco Filippi iz3gme.marco@gmail.com] [chirpc] Allow deleting an already empty memory
On some radio (eg ft817) empty channels can contain valid data, deleting again such a memory usually clean data
Improves #2343
[Marco Filippi iz3gme.marco@gmail.com] [chirpc] Allow memnum arg to be a string to access special channels
Special channels are identified by extd_number which can be a string
Improves #2343
[Marco Filippi iz3gme.marco@gmail.com] [chirpc] Add --list-special-mem
Add to chirpc the capability to list special channels if any The string memory representation have been changed to print the extd_number when present instead of number
Improves #2343
Full log:
Started by an SCM change Building in workspace /var/lib/jenkins/jobs/chirp-test/workspace [workspace] $ hg showconfig paths.default [workspace] $ hg pull --rev default [workspace] $ hg update --clean --rev default 3 files updated, 0 files merged, 0 files removed, 0 files unresolved [workspace] $ hg log --rev . --template {node} [workspace] $ hg log --rev . --template {rev} [workspace] $ hg log --rev 5c8ac5597f34af143915667c51ed5882e97e30f7 [workspace] $ hg log --template "<changeset node='{node}' author='{author|xmlescape}' rev='{rev}' date='{date}'><msg>{desc|xmlescape}</msg><added>{file_adds|stringify|xmlescape}</added><deleted>{file_dels|stringify|xmlescape}</deleted><files>{files|stringify|xmlescape}</files><parents>{parents}</parents></changeset>\n" --rev default:0 --follow --prune 5c8ac5597f34af143915667c51ed5882e97e30f7 No emails were triggered. [workspace] $ /bin/sh -xe /tmp/hudson3699824311155019816.sh + ./run_all_tests.sh test_bit_array (tests.unit.test_bitwise.TestBitType) ... ok test_bit_array_fail (tests.unit.test_bitwise.TestBitType) ... ok test_bitfield_u16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok test_bitfield_u24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok test_bitfield_u8 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok test_bitfield_ul16 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok test_bitfield_ul24 (tests.unit.test_bitwise.TestBitfieldTypes) ... ok test_bbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok test_bbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok test_lbcd (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok test_lbcd_array (tests.unit.test_bitwise.TestBitwiseBCDTypes) ... ok test_int_array (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok test_type_u16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok test_type_u24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok test_type_u32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok test_type_u8 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok test_type_ul16 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok test_type_ul24 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok test_type_ul32 (tests.unit.test_bitwise.TestBitwiseBaseIntTypes) ... ok test_char (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok test_string (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok test_string_invalid_chars (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok test_string_wrong_length (tests.unit.test_bitwise.TestBitwiseCharTypes) ... ok test_comment_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok test_comment_inline_cppstyle (tests.unit.test_bitwise.TestBitwiseComments) ... ok test_missing_semicolon (tests.unit.test_bitwise.TestBitwiseErrors) ... ok test_seek (tests.unit.test_bitwise.TestBitwiseSeek) ... ok test_seekto (tests.unit.test_bitwise.TestBitwiseSeek) ... ok test_struct_one_element (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok test_struct_two_elements (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok test_struct_writes (tests.unit.test_bitwise.TestBitwiseStructTypes) ... ok split_tone_encode_test_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok split_tone_encode_test_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok split_tone_encode_test_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok split_tone_encode_test_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok split_tone_encode_test_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok split_tone_encode_test_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok split_tone_encode_test_none (tests.unit.test_chirp_common.TestSplitTone) ... ok split_tone_encode_test_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok split_tone_encode_test_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok test_split_tone_decode_cross_dtcs_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok test_split_tone_decode_cross_dtcs_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok test_split_tone_decode_cross_none_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok test_split_tone_decode_cross_none_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok test_split_tone_decode_cross_tone_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok test_split_tone_decode_cross_tone_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok test_split_tone_decode_dtcs (tests.unit.test_chirp_common.TestSplitTone) ... ok test_split_tone_decode_none (tests.unit.test_chirp_common.TestSplitTone) ... ok test_split_tone_decode_tone (tests.unit.test_chirp_common.TestSplitTone) ... ok test_split_tone_decode_tsql (tests.unit.test_chirp_common.TestSplitTone) ... ok test_fix_rounded_step_250 (tests.unit.test_chirp_common.TestStepFunctions) ... ok test_fix_rounded_step_500 (tests.unit.test_chirp_common.TestStepFunctions) ... ok test_fix_rounded_step_750 (tests.unit.test_chirp_common.TestStepFunctions) ... ok test_is_12_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok test_is_2_5 (tests.unit.test_chirp_common.TestStepFunctions) ... ok test_is_5_0 (tests.unit.test_chirp_common.TestStepFunctions) ... ok test_is_6_25 (tests.unit.test_chirp_common.TestStepFunctions) ... ok test_is_fractional_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok test_required_step (tests.unit.test_chirp_common.TestStepFunctions) ... ok test_required_step_fail (tests.unit.test_chirp_common.TestStepFunctions) ... ok test_format_freq (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok test_parse_freq_bad (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok test_parse_freq_decimal (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok test_parse_freq_whitespace (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok test_parse_freq_whole (tests.unit.test_chirp_common.TestUtilityFunctions) ... ok test_ensure_has_calls_almost_full (tests.unit.test_import_logic.DstarTests) ... ok test_ensure_has_calls_empty (tests.unit.test_import_logic.DstarTests) ... ok test_ensure_has_calls_partial (tests.unit.test_import_logic.DstarTests) ... ok test_ensure_has_calls_rptcall_full1 (tests.unit.test_import_logic.DstarTests) ... ok test_ensure_has_calls_rptcall_full2 (tests.unit.test_import_logic.DstarTests) ... ok test_ensure_has_calls_urcall_full (tests.unit.test_import_logic.DstarTests) ... ok test_import_bank (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_dtcs_diffA_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_dtcs_diffB_dtcs (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_duplex_negative (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_duplex_too_big_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_duplex_uhf (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_duplex_vhf (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_mem (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_mem_with_errors (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_mem_with_warnings (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_mode_invalid (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_mode_valid_am (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_mode_valid_fm (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_name (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_power_closest (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_power_no_dst (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_power_no_src (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_power_same (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_tone_diffA_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok test_import_tone_diffB_tsql (tests.unit.test_import_logic.ImportFieldTests) ... ok test_mapping (tests.unit.test_mappingmodel.TestBaseBank) ... ok test_mapping_eq (tests.unit.test_mappingmodel.TestBaseBank) ... ok test_base_class (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok test_get_name (tests.unit.test_mappingmodel.TestBaseBankModel) ... ok test_mapping (tests.unit.test_mappingmodel.TestBaseMapping) ... ok test_mapping_eq (tests.unit.test_mappingmodel.TestBaseMapping) ... ok test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok test_get_name (tests.unit.test_mappingmodel.TestBaseMappingModel) ... ok test_base_class (tests.unit.test_mappingmodel.TestBaseMappingModelIndexInterface) ... ok test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok test_get_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomBankModel) ... ok test_icom_bank (tests.unit.test_mappingmodel.TestIcomBanks) ... ok test_mapping (tests.unit.test_mappingmodel.TestIcomBanks) ... ok test_mapping_eq (tests.unit.test_mappingmodel.TestIcomBanks) ... ok test_add_memory_to_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok test_get_index_bounds (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok test_get_mapping_memories (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok test_get_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok test_get_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok test_get_memory_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok test_get_next_mapping_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok test_get_num_mappings (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok test_remove_memory_from_mapping (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok test_remove_memory_from_mapping_no_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok test_remove_memory_from_mapping_wrong_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok test_set_memory_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok test_set_memory_index_bad_bank (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok test_set_memory_index_bad_index (tests.unit.test_mappingmodel.TestIcomIndexedBankModel) ... ok test_auto_tone_mode_cross (tests.unit.test_memedit_edits.TestEdits) ... ok test_auto_tone_mode_dtcs (tests.unit.test_memedit_edits.TestEdits) ... ok test_auto_tone_mode_dtcs_pol (tests.unit.test_memedit_edits.TestEdits) ... ok test_auto_tone_mode_dtcs_rx (tests.unit.test_memedit_edits.TestEdits) ... ok test_auto_tone_mode_tone (tests.unit.test_memedit_edits.TestEdits) ... ok test_auto_tone_mode_tsql (tests.unit.test_memedit_edits.TestEdits) ... ok test_init (tests.unit.test_platform.Win32PlatformTest) ... ok test_serial_ports_bad_portnames (tests.unit.test_platform.Win32PlatformTest) ... ok test_serial_ports_sorted (tests.unit.test_platform.Win32PlatformTest) ... ok test_apply_callback (tests.unit.test_settings.TestSettingContainers) ... ok test_radio_setting (tests.unit.test_settings.TestSettingContainers) ... ok test_radio_setting_group (tests.unit.test_settings.TestSettingContainers) ... ok test_radio_setting_multi (tests.unit.test_settings.TestSettingContainers) ... ok test_changed (tests.unit.test_settings.TestSettingValues) ... ok test_radio_setting_value_boolean (tests.unit.test_settings.TestSettingValues) ... ok test_radio_setting_value_float (tests.unit.test_settings.TestSettingValues) ... ok test_radio_setting_value_integer (tests.unit.test_settings.TestSettingValues) ... ok test_radio_setting_value_list (tests.unit.test_settings.TestSettingValues) ... ok test_radio_setting_value_string (tests.unit.test_settings.TestSettingValues) ... ok test_validate_callback (tests.unit.test_settings.TestSettingValues) ... ok test_delete_hole_with_all (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok test_delete_hole_with_all_full (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok test_delete_hole_with_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok test_delete_hole_without_hole (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok test_insert_hole_with_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok test_insert_hole_without_space (tests.unit.test_shiftdialog.ShiftDialogTest) ... ok
---------------------------------------------------------------------- Ran 151 tests in 0.095s
OK Patch 'tip' is OK Checking for PEP8 regressions...
real 0m12.003s user 0m9.823s sys 0m0.200s ================================================ Tests OK Email was triggered for: Success Sending email for trigger: Success