Coverage report: 99%

Files Functions Classes

coverage.py v7.9.1, created at 2025-06-20 13:09 +0000

File function statements missing excluded branches partial coverage
bzfs_main/bzfs.py argument_parser 147 0 0 20 0 100%
bzfs_main/bzfs.py argument_parser.argparser_escape 1 0 0 0 0 100%
bzfs_main/bzfs.py argument_parser.hlp 1 0 0 0 0 100%
bzfs_main/bzfs.py argument_parser.h 1 0 0 0 0 100%
bzfs_main/bzfs.py LogParams.__init__ 42 0 0 8 0 100%
bzfs_main/bzfs.py LogParams.__repr__ 1 0 0 0 0 100%
bzfs_main/bzfs.py Params.__init__ 116 0 0 6 0 100%
bzfs_main/bzfs.py Params.split_args 6 0 0 2 0 100%
bzfs_main/bzfs.py Params.validate_arg 6 0 0 4 0 100%
bzfs_main/bzfs.py Params.validate_arg_str 4 0 0 2 0 100%
bzfs_main/bzfs.py Params.validate_quoting 3 0 0 4 0 100%
bzfs_main/bzfs.py Params.fix_recv_opts 1 0 0 0 0 100%
bzfs_main/bzfs.py Params.fix_send_opts 1 0 0 0 0 100%
bzfs_main/bzfs.py Params.program_name 7 0 0 4 0 100%
bzfs_main/bzfs.py Params.unset_matching_env_vars 6 0 0 4 0 100%
bzfs_main/bzfs.py Params.lock_file_name 3 0 0 0 0 100%
bzfs_main/bzfs.py Params.dry 1 0 0 0 0 100%
bzfs_main/bzfs.py Remote.__init__ 32 0 0 4 0 100%
bzfs_main/bzfs.py Remote.local_ssh_command 22 0 0 14 0 100%
bzfs_main/bzfs.py Remote.local_ssh_command.sanitize 3 0 0 0 0 100%
bzfs_main/bzfs.py Remote.cache_key 1 0 0 0 0 100%
bzfs_main/bzfs.py Remote.__repr__ 1 0 0 0 0 100%
bzfs_main/bzfs.py CopyPropertiesConfig.__init__ 8 0 0 0 0 100%
bzfs_main/bzfs.py CopyPropertiesConfig.__repr__ 1 0 0 0 0 100%
bzfs_main/bzfs.py RetryPolicy.__init__ 9 0 0 0 0 100%
bzfs_main/bzfs.py RetryPolicy.__repr__ 1 0 0 0 0 100%
bzfs_main/bzfs.py SnapshotLabel.__str__ 1 0 0 0 0 100%
bzfs_main/bzfs.py SnapshotLabel.validate_label 21 0 0 24 0 100%
bzfs_main/bzfs.py SnapshotPeriods.__init__ 4 0 0 0 0 100%
bzfs_main/bzfs.py SnapshotPeriods.suffix_to_duration0 1 0 0 0 0 100%
bzfs_main/bzfs.py SnapshotPeriods.suffix_to_duration1 1 0 0 0 0 100%
bzfs_main/bzfs.py SnapshotPeriods._suffix_to_duration 6 0 0 2 0 100%
bzfs_main/bzfs.py SnapshotPeriods.label_milliseconds 4 0 0 0 0 100%
bzfs_main/bzfs.py CreateSrcSnapshotConfig.__init__ 35 0 0 16 0 100%
bzfs_main/bzfs.py CreateSrcSnapshotConfig.__init__.suffix_key 9 0 0 8 0 100%
bzfs_main/bzfs.py CreateSrcSnapshotConfig.snapshot_labels 9 0 0 4 0 100%
bzfs_main/bzfs.py CreateSrcSnapshotConfig.__repr__ 1 0 0 0 0 100%
bzfs_main/bzfs.py MonitorSnapshotsConfig.__init__ 50 0 0 28 0 100%
bzfs_main/bzfs.py MonitorSnapshotsConfig.__init__.alert_sort_key 3 0 0 0 0 100%
bzfs_main/bzfs.py MonitorSnapshotsConfig.__repr__ 1 0 0 0 0 100%
bzfs_main/bzfs.py main 4 1 0 0 0 75%
bzfs_main/bzfs.py run_main 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.__init__ 36 0 0 0 0 100%
bzfs_main/bzfs.py Job.shutdown 3 0 0 2 0 100%
bzfs_main/bzfs.py Job.terminate 3 0 0 0 0 100%
bzfs_main/bzfs.py Job.terminate.post_shutdown 2 0 0 0 0 100%
bzfs_main/bzfs.py Job.run_main 47 0 0 14 0 100%
bzfs_main/bzfs.py Job.run_tasks 68 0 0 14 0 100%
bzfs_main/bzfs.py Job.run_tasks.log_error_on_exit 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.append_exception 5 0 0 2 0 100%
bzfs_main/bzfs.py Job.sleep_until_next_daemon_iteration 15 0 0 2 0 100%
bzfs_main/bzfs.py Job.print_replication_stats 8 0 0 2 0 100%
bzfs_main/bzfs.py Job.validate_once 30 0 0 20 0 100%
bzfs_main/bzfs.py Job.validate_once.separate_abs_vs_rel_datasets 5 0 0 2 0 100%
bzfs_main/bzfs.py Job.validate_task 45 0 0 20 0 100%
bzfs_main/bzfs.py Job.sudo_cmd 23 0 0 16 0 100%
bzfs_main/bzfs.py Job.run_task 140 0 0 66 0 100%
bzfs_main/bzfs.py Job.run_task.filter_src_datasets 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.run_task.delete_destination_snapshots 43 0 0 20 0 100%
bzfs_main/bzfs.py Job.monitor_snapshots 28 0 0 8 0 100%
bzfs_main/bzfs.py Job.monitor_snapshots.monitor_last_modified_cache_file 2 0 0 0 0 100%
bzfs_main/bzfs.py Job.monitor_snapshots.alert_msg 9 0 0 4 0 100%
bzfs_main/bzfs.py Job.monitor_snapshots.check_alert 24 0 0 14 0 100%
bzfs_main/bzfs.py Job.monitor_snapshots.alert_latest_snapshot 2 0 0 0 0 100%
bzfs_main/bzfs.py Job.monitor_snapshots.alert_oldest_snapshot 2 0 0 0 0 100%
bzfs_main/bzfs.py Job.monitor_snapshots.find_stale_datasets_and_check_alerts 16 0 0 12 0 100%
bzfs_main/bzfs.py Job.replicate_datasets 37 0 0 8 0 100%
bzfs_main/bzfs.py Job.replicate_datasets.src2dst 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.replicate_datasets.dst2src 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.replicate_datasets.find_stale_datasets 29 0 0 8 0 100%
bzfs_main/bzfs.py Job.replicate_dataset 188 0 0 80 1 99%
bzfs_main/bzfs.py Job.replicate_dataset.latest_common_snapshot 5 0 0 4 0 100%
bzfs_main/bzfs.py Job.replicate_dataset.format_size 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.replicate_dataset.replication_candidates 21 0 0 6 0 100%
bzfs_main/bzfs.py Job.prepare_zfs_send_receive 81 0 0 60 0 100%
bzfs_main/bzfs.py Job.run_zfs_send_receive 31 0 0 6 0 100%
bzfs_main/bzfs.py Job.clear_resumable_recv_state_if_necessary 13 0 0 10 0 100%
bzfs_main/bzfs.py Job.clear_resumable_recv_state_if_necessary.clear_resumable_recv_state 5 0 0 0 0 100%
bzfs_main/bzfs.py Job._recv_resume_token 23 0 0 12 0 100%
bzfs_main/bzfs.py Job.mbuffer_cmd 5 0 0 2 0 100%
bzfs_main/bzfs.py Job.compress_cmd 4 0 0 2 0 100%
bzfs_main/bzfs.py Job.decompress_cmd 4 0 0 2 0 100%
bzfs_main/bzfs.py Job.pv_cmd 23 0 0 16 0 100%
bzfs_main/bzfs.py Job.run_ssh_command 26 0 0 6 1 97%
bzfs_main/bzfs.py Job.try_ssh_command 12 0 0 4 1 94%
bzfs_main/bzfs.py Job.refresh_ssh_connection_if_necessary 26 0 0 12 0 100%
bzfs_main/bzfs.py Job.timeout 8 0 0 4 0 100%
bzfs_main/bzfs.py Job.maybe_inject_error 9 0 0 6 0 100%
bzfs_main/bzfs.py Job.maybe_inject_delete 6 0 0 2 0 100%
bzfs_main/bzfs.py Job.maybe_inject_params 6 0 0 4 0 100%
bzfs_main/bzfs.py Job.decrement_injection_counter 5 0 0 2 0 100%
bzfs_main/bzfs.py Job.squote 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.dquote 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.filter_datasets 26 0 0 20 0 100%
bzfs_main/bzfs.py Job.filter_datasets_by_exclude_property 29 0 0 12 0 100%
bzfs_main/bzfs.py Job.filter_snapshots 23 0 0 12 0 100%
bzfs_main/bzfs.py Job.filter_snapshots.resolve_timerange 9 0 0 4 0 100%
bzfs_main/bzfs.py Job.filter_snapshots_by_regex 15 0 0 10 0 100%
bzfs_main/bzfs.py Job.filter_snapshots_by_creation_time 16 0 0 10 0 100%
bzfs_main/bzfs.py Job.filter_snapshots_by_creation_time_and_rank 33 0 0 14 0 100%
bzfs_main/bzfs.py Job.filter_snapshots_by_creation_time_and_rank.get_idx 4 0 0 0 0 100%
bzfs_main/bzfs.py Job.filter_properties 11 0 0 8 0 100%
bzfs_main/bzfs.py Job.delete_snapshots 5 0 0 2 0 100%
bzfs_main/bzfs.py Job.delete_snapshot 10 0 0 0 0 100%
bzfs_main/bzfs.py Job.delete_snapshot_cmd 2 0 0 0 0 100%
bzfs_main/bzfs.py Job.delete_bookmarks 6 0 0 2 0 100%
bzfs_main/bzfs.py Job.delete_datasets 10 0 0 4 0 100%
bzfs_main/bzfs.py Job.create_zfs_filesystem 15 1 0 8 1 91%
bzfs_main/bzfs.py Job.create_zfs_bookmarks 5 0 0 2 0 100%
bzfs_main/bzfs.py Job.create_zfs_bookmarks.create_zfs_bookmark 9 2 0 2 1 73%
bzfs_main/bzfs.py Job.estimate_send_size 23 1 0 8 1 94%
bzfs_main/bzfs.py Job.dataset_regexes 19 0 0 14 0 100%
bzfs_main/bzfs.py Job.run_with_retries 23 0 0 6 0 100%
bzfs_main/bzfs.py Job.incremental_send_steps_wrapper 2 0 0 0 0 100%
bzfs_main/bzfs.py Job.incremental_send_steps 33 0 0 16 0 100%
bzfs_main/bzfs.py Job.incremental_send_steps.append_run 9 0 0 6 0 100%
bzfs_main/bzfs.py Job.send_step_to_str 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.zfs_set 5 0 0 2 0 100%
bzfs_main/bzfs.py Job.zfs_get 17 0 0 8 0 100%
bzfs_main/bzfs.py Job.add_recv_property_options 30 2 0 18 0 96%
bzfs_main/bzfs.py Job.recv_option_property_names 12 0 0 6 0 100%
bzfs_main/bzfs.py Job.root_datasets_if_recursive_zfs_snapshot_is_possible 14 0 0 8 0 100%
bzfs_main/bzfs.py Job.find_root_datasets 8 0 0 4 0 100%
bzfs_main/bzfs.py Job.find_datasets_to_snapshot 54 0 0 28 0 100%
bzfs_main/bzfs.py Job.find_datasets_to_snapshot.create_snapshot_if_latest_is_too_old 12 0 0 4 0 100%
bzfs_main/bzfs.py Job.find_datasets_to_snapshot.create_snapshot_fn 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.find_datasets_to_snapshot.on_finish_dataset 2 0 0 2 0 100%
bzfs_main/bzfs.py Job.handle_minmax_snapshots 32 0 0 12 0 100%
bzfs_main/bzfs.py Job.cache_get_snapshots_changed 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.cache_get_snapshots_changed2 5 0 0 0 0 100%
bzfs_main/bzfs.py Job.last_modified_cache_file 3 0 0 0 0 100%
bzfs_main/bzfs.py Job.invalidate_last_modified_cache_dataset 10 2 0 4 0 86%
bzfs_main/bzfs.py Job.update_last_modified_cache 28 2 0 14 0 95%
bzfs_main/bzfs.py Job.zfs_get_snapshots_changed 15 0 0 10 0 100%
bzfs_main/bzfs.py Job.zfs_get_snapshots_changed.try_zfs_list_command 6 2 0 0 0 67%
bzfs_main/bzfs.py Job.run_compare_snapshot_lists 44 0 0 8 0 100%
bzfs_main/bzfs.py Job.run_compare_snapshot_lists.zfs_list_snapshot_iterator 11 0 0 6 0 100%
bzfs_main/bzfs.py Job.run_compare_snapshot_lists.snapshot_iterator 18 0 0 8 0 100%
bzfs_main/bzfs.py Job.run_compare_snapshot_lists.print_dataset 74 0 0 22 0 100%
bzfs_main/bzfs.py Job.print_datasets 13 0 0 6 0 100%
bzfs_main/bzfs.py Job.merge_sorted_iterators 28 0 0 20 0 100%
bzfs_main/bzfs.py Job.build_dataset_tree 10 0 0 6 0 100%
bzfs_main/bzfs.py Job.process_datasets_in_parallel_and_fault_tolerant 99 0 0 32 0 100%
bzfs_main/bzfs.py Job.process_datasets_in_parallel_and_fault_tolerant._process_dataset 5 0 0 0 0 100%
bzfs_main/bzfs.py Job.process_datasets_in_parallel_and_fault_tolerant.TreeNodeMutableAttributes.__init__ 2 0 0 0 0 100%
bzfs_main/bzfs.py Job.process_datasets_in_parallel_and_fault_tolerant.TreeNode.__repr__ 2 0 0 0 0 100%
bzfs_main/bzfs.py Job.process_datasets_in_parallel_and_fault_tolerant.make_tree_node 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.process_datasets_in_parallel_and_fault_tolerant.build_dataset_tree_and_find_roots 12 0 0 6 0 100%
bzfs_main/bzfs.py Job.process_datasets_in_parallel_and_fault_tolerant.submit_datasets 15 0 0 6 0 100%
bzfs_main/bzfs.py Job.process_datasets_in_parallel_and_fault_tolerant.simple_enqueue_children 5 0 0 4 0 100%
bzfs_main/bzfs.py Job.is_program_available 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.detect_available_programs 65 1 0 42 2 97%
bzfs_main/bzfs.py Job.disable_program 2 0 0 2 0 100%
bzfs_main/bzfs.py Job.find_available_programs 15 0 0 0 0 100%
bzfs_main/bzfs.py Job.detect_available_programs_remote 42 2 0 14 2 93%
bzfs_main/bzfs.py Job.is_solaris_zfs 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.is_solaris_zfs_location 3 0 0 2 0 100%
bzfs_main/bzfs.py Job.is_dummy 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.detect_zpool_features 23 1 0 10 1 94%
bzfs_main/bzfs.py Job.is_zpool_feature_enabled_or_active 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.are_bookmarks_enabled 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.is_caching_snapshots 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.check_zfs_dataset_busy 15 0 0 6 0 100%
bzfs_main/bzfs.py Job.is_zfs_dataset_busy 4 0 0 0 0 100%
bzfs_main/bzfs.py Job.run_ssh_cmd_batched 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.itr_ssh_cmd_batched 27 0 0 8 0 100%
bzfs_main/bzfs.py Job.itr_ssh_cmd_batched.flush 3 0 0 2 0 100%
bzfs_main/bzfs.py Job.run_ssh_cmd_parallel 1 0 0 0 0 100%
bzfs_main/bzfs.py Job.itr_ssh_cmd_parallel 23 0 0 12 0 100%
bzfs_main/bzfs.py Job.zfs_list_snapshots_in_parallel 2 0 0 0 0 100%
bzfs_main/bzfs.py Job.run_in_parallel 5 0 0 0 0 100%
bzfs_main/bzfs.py Job.get_max_command_line_bytes 18 0 0 12 0 100%
bzfs_main/bzfs.py Connection.__init__ 9 0 0 0 0 100%
bzfs_main/bzfs.py Connection.__repr__ 1 0 0 0 0 100%
bzfs_main/bzfs.py Connection.increment_free 3 0 0 0 0 100%
bzfs_main/bzfs.py Connection.is_full 1 0 0 0 0 100%
bzfs_main/bzfs.py Connection.update_last_modified 1 0 0 0 0 100%
bzfs_main/bzfs.py Connection.shutdown 7 0 0 4 0 100%
bzfs_main/bzfs.py ConnectionPool.__init__ 7 0 0 0 0 100%
bzfs_main/bzfs.py ConnectionPool.get_connection 12 0 0 4 0 100%
bzfs_main/bzfs.py ConnectionPool.return_connection 7 0 0 2 0 100%
bzfs_main/bzfs.py ConnectionPool.shutdown 5 0 0 4 0 100%
bzfs_main/bzfs.py ConnectionPool.__repr__ 3 0 0 0 0 100%
bzfs_main/bzfs.py ConnectionPools.__init__ 1 0 0 0 0 100%
bzfs_main/bzfs.py ConnectionPools.__repr__ 1 0 0 0 0 100%
bzfs_main/bzfs.py ConnectionPools.pool 1 0 0 0 0 100%
bzfs_main/bzfs.py ConnectionPools.shutdown 2 0 0 2 0 100%
bzfs_main/bzfs.py ProgressReporter.__init__ 12 0 0 0 0 100%
bzfs_main/bzfs.py ProgressReporter.start 4 0 0 0 0 100%
bzfs_main/bzfs.py ProgressReporter.stop 7 0 0 4 0 100%
bzfs_main/bzfs.py ProgressReporter.pause 2 0 0 0 0 100%
bzfs_main/bzfs.py ProgressReporter.reset 2 0 0 0 0 100%
bzfs_main/bzfs.py ProgressReporter.enqueue_pv_log_file 3 0 0 2 0 100%
bzfs_main/bzfs.py ProgressReporter._run 13 0 0 2 0 100%
bzfs_main/bzfs.py ProgressReporter._run_internal 76 0 0 20 0 100%
bzfs_main/bzfs.py ProgressReporter.update_transfer_stat 4 0 0 0 0 100%
bzfs_main/bzfs.py ProgressReporter.parse_pv_line 11 0 0 4 0 100%
bzfs_main/bzfs.py ProgressReporter.format_sent_bytes 2 0 0 0 0 100%
bzfs_main/bzfs.py ProgressReporter.format_duration 4 0 0 0 0 100%
bzfs_main/bzfs.py ProgressReporter.get_update_intervals 6 0 0 0 0 100%
bzfs_main/bzfs.py InterruptibleSleep.__init__ 3 0 0 0 0 100%
bzfs_main/bzfs.py InterruptibleSleep.sleep 7 0 0 4 0 100%
bzfs_main/bzfs.py InterruptibleSleep.interrupt 4 0 0 2 0 100%
bzfs_main/bzfs.py fix_send_recv_opts 23 0 0 16 0 100%
bzfs_main/bzfs.py fix_solaris_raw_mode 8 0 0 4 0 100%
bzfs_main/bzfs.py delete_stale_files 17 2 0 14 1 90%
bzfs_main/bzfs.py die 3 0 0 0 0 100%
bzfs_main/bzfs.py filter_lines 3 0 0 2 0 100%
bzfs_main/bzfs.py filter_lines_except 3 0 0 2 0 100%
bzfs_main/bzfs.py has_siblings 14 0 0 8 0 100%
bzfs_main/bzfs.py is_descendant 1 0 0 0 0 100%
bzfs_main/bzfs.py relativize_dataset 1 0 0 0 0 100%
bzfs_main/bzfs.py replace_prefix 2 0 0 0 0 100%
bzfs_main/bzfs.py replace_in_lines 2 0 0 2 0 100%
bzfs_main/bzfs.py has_duplicates 1 0 0 0 0 100%
bzfs_main/bzfs.py is_included 13 0 0 12 0 100%
bzfs_main/bzfs.py compile_regexes 17 0 0 14 0 100%
bzfs_main/bzfs.py replace_capturing_groups_with_non_capturing_groups 7 0 0 4 0 100%
bzfs_main/bzfs.py getenv_any 1 0 0 0 0 100%
bzfs_main/bzfs.py getenv_int 1 0 0 0 0 100%
bzfs_main/bzfs.py getenv_bool 1 0 0 0 0 100%
bzfs_main/bzfs.py find_match 15 0 0 14 0 100%
bzfs_main/bzfs.py xappend 6 0 0 6 0 100%
bzfs_main/bzfs.py human_readable_bytes 11 0 0 2 0 100%
bzfs_main/bzfs.py human_readable_duration 22 0 0 12 0 100%
bzfs_main/bzfs.py human_readable_float 8 0 0 2 0 100%
bzfs_main/bzfs.py percent 1 0 0 0 0 100%
bzfs_main/bzfs.py parse_duration_to_milliseconds 10 0 0 4 0 100%
bzfs_main/bzfs.py get_home_directory 1 0 0 0 0 100%
bzfs_main/bzfs.py create_symlink 2 0 0 0 0 100%
bzfs_main/bzfs.py is_version_at_least 1 0 0 0 0 100%
bzfs_main/bzfs.py tail 4 0 0 2 0 100%
bzfs_main/bzfs.py append_if_absent 4 0 0 4 0 100%
bzfs_main/bzfs.py stderr_to_str 1 0 0 0 0 100%
bzfs_main/bzfs.py xprint 4 0 0 2 0 100%
bzfs_main/bzfs.py set_last_modification_time_safe 5 0 0 0 0 100%
bzfs_main/bzfs.py set_last_modification_time 7 0 0 4 0 100%
bzfs_main/bzfs.py drain 1 0 0 0 0 100%
bzfs_main/bzfs.py nprefix 1 0 0 0 0 100%
bzfs_main/bzfs.py ninfix 1 0 0 0 0 100%
bzfs_main/bzfs.py nsuffix 1 0 0 0 0 100%
bzfs_main/bzfs.py format_dict 1 0 0 0 0 100%
bzfs_main/bzfs.py unixtime_fromisoformat 1 0 0 0 0 100%
bzfs_main/bzfs.py isotime_from_unixtime 3 0 0 0 0 100%
bzfs_main/bzfs.py current_datetime 3 0 0 2 0 100%
bzfs_main/bzfs.py get_timezone 14 0 0 8 0 100%
bzfs_main/bzfs.py PeriodAnchors.parse 2 0 0 0 0 100%
bzfs_main/bzfs.py round_datetime_up_to_duration_multiple 62 0 0 28 0 100%
bzfs_main/bzfs.py round_datetime_up_to_duration_multiple.add_months 5 0 0 0 0 100%
bzfs_main/bzfs.py round_datetime_up_to_duration_multiple.add_years 3 0 0 0 0 100%
bzfs_main/bzfs.py subprocess_run 21 0 0 8 0 100%
bzfs_main/bzfs.py terminate_process_subtree 9 0 0 4 0 100%
bzfs_main/bzfs.py get_descendant_processes 13 0 0 2 0 100%
bzfs_main/bzfs.py get_descendant_processes.recursive_append 3 0 0 2 0 100%
bzfs_main/bzfs.py pid_exists 11 0 0 6 0 100%
bzfs_main/bzfs.py pv_size_to_bytes 11 0 0 4 0 100%
bzfs_main/bzfs.py count_num_bytes_transferred_by_zfs_send 18 2 0 10 0 93%
bzfs_main/bzfs.py count_num_bytes_transferred_by_zfs_send.parse_pv_line 5 0 0 2 0 100%
bzfs_main/bzfs.py parse_dataset_locator 31 0 0 20 1 98%
bzfs_main/bzfs.py parse_dataset_locator.convert_ipv6 1 0 0 0 0 100%
bzfs_main/bzfs.py validate_dataset_name 2 0 0 2 0 100%
bzfs_main/bzfs.py validate_user_name 2 0 0 2 0 100%
bzfs_main/bzfs.py validate_host_name 3 0 0 2 0 100%
bzfs_main/bzfs.py validate_port 4 0 0 4 0 100%
bzfs_main/bzfs.py validate_default_shell 2 0 0 2 0 100%
bzfs_main/bzfs.py list_formatter 3 0 0 0 0 100%
bzfs_main/bzfs.py list_formatter.CustomListFormatter.__str__ 2 0 0 0 0 100%
bzfs_main/bzfs.py pretty_print_formatter 3 0 0 0 0 100%
bzfs_main/bzfs.py pretty_print_formatter.PrettyPrintFormatter.__str__ 2 0 0 0 0 100%
bzfs_main/bzfs.py reset_logger 9 0 0 6 0 100%
bzfs_main/bzfs.py get_logger_subname 1 0 0 0 0 100%
bzfs_main/bzfs.py get_logger 10 0 0 4 0 100%
bzfs_main/bzfs.py get_default_logger 30 0 0 8 0 100%
bzfs_main/bzfs.py get_default_log_formatter 9 0 0 0 0 100%
bzfs_main/bzfs.py get_default_log_formatter.DefaultLogFormatter.format 19 0 0 8 0 100%
bzfs_main/bzfs.py get_default_log_formatter.DefaultLogFormatter.ljust_cols 9 0 0 4 0 100%
bzfs_main/bzfs.py get_simple_logger 11 0 0 2 0 100%
bzfs_main/bzfs.py get_simple_logger.LevelFormatter.format 3 0 0 0 0 100%
bzfs_main/bzfs.py add_trace_loglevel 1 0 0 0 0 100%
bzfs_main/bzfs.py get_syslog_address 8 0 0 2 0 100%
bzfs_main/bzfs.py get_dict_config_logger 21 0 0 8 0 100%
bzfs_main/bzfs.py get_dict_config_logger.remove_json_comments 11 0 0 8 0 100%
bzfs_main/bzfs.py get_dict_config_logger.substitute_log_config_vars 3 0 0 0 0 100%
bzfs_main/bzfs.py get_dict_config_logger.substitute_log_config_vars.substitute_fn 15 0 0 6 0 100%
bzfs_main/bzfs.py validate_log_config_variable 5 0 0 4 0 100%
bzfs_main/bzfs.py validate_log_config_variable_name 8 0 0 6 0 100%
bzfs_main/bzfs.py RetryableError.__init__ 2 0 0 0 0 100%
bzfs_main/bzfs.py Tee.__init__ 1 0 0 0 0 100%
bzfs_main/bzfs.py Tee.write 3 0 0 2 0 100%
bzfs_main/bzfs.py Tee.flush 2 0 0 2 0 100%
bzfs_main/bzfs.py Tee.fileno 1 0 0 0 0 100%
bzfs_main/bzfs.py NonEmptyStringAction.__call__ 4 0 0 2 0 100%
bzfs_main/bzfs.py DatasetPairsAction.__call__ 23 0 0 14 0 100%
bzfs_main/bzfs.py SafeFileNameAction.__call__ 3 0 0 2 0 100%
bzfs_main/bzfs.py NewSnapshotFilterGroupAction.__call__ 4 0 0 4 0 100%
bzfs_main/bzfs.py FileOrLiteralAction.__call__ 19 0 0 12 0 100%
bzfs_main/bzfs.py IncludeSnapshotPlanAction.__call__ 6 0 0 2 0 100%
bzfs_main/bzfs.py IncludeSnapshotPlanAction._add_opts 18 0 0 10 0 100%
bzfs_main/bzfs.py DeleteDstSnapshotsExceptPlanAction.__call__ 6 0 0 2 0 100%
bzfs_main/bzfs.py TimeRangeAndRankRangeAction.__call__ 13 0 0 4 0 100%
bzfs_main/bzfs.py TimeRangeAndRankRangeAction.__call__.parse_time 12 0 0 4 0 100%
bzfs_main/bzfs.py TimeRangeAndRankRangeAction.get_include_snapshot_times 9 0 0 4 0 100%
bzfs_main/bzfs.py TimeRangeAndRankRangeAction.get_include_snapshot_times.utc_unix_time_in_seconds 5 0 0 4 0 100%
bzfs_main/bzfs.py TimeRangeAndRankRangeAction.parse_rankranges 24 0 0 12 0 100%
bzfs_main/bzfs.py TimeRangeAndRankRangeAction.parse_rankranges.parse_rank 11 0 0 4 0 100%
bzfs_main/bzfs.py add_snapshot_filter 3 0 0 2 0 100%
bzfs_main/bzfs.py add_time_and_rank_snapshot_filter 4 0 0 2 0 100%
bzfs_main/bzfs.py has_timerange_filter 1 0 0 0 0 100%
bzfs_main/bzfs.py optimize_snapshot_filters 5 0 0 0 0 100%
bzfs_main/bzfs.py merge_adjacent_snapshot_filters 11 0 0 6 0 100%
bzfs_main/bzfs.py merge_adjacent_snapshot_regexes 32 0 0 14 0 100%
bzfs_main/bzfs.py reorder_snapshot_time_filters 10 0 0 4 0 100%
bzfs_main/bzfs.py reorder_snapshot_time_filters.reorder_time_filters_within_section 6 0 0 4 0 100%
bzfs_main/bzfs.py LogConfigVariablesAction.__call__ 9 0 0 6 0 100%
bzfs_main/bzfs.py CheckRange.__init__ 8 0 0 8 0 100%
bzfs_main/bzfs.py CheckRange.interval 11 0 0 8 0 100%
bzfs_main/bzfs.py CheckRange.__call__ 4 0 0 4 0 100%
bzfs_main/bzfs.py CheckPercentRange.__call__ 12 0 0 2 0 100%
bzfs_main/bzfs.py Comparable.__lt__ 0 0 1 0 0 100%
bzfs_main/bzfs.py SmallPriorityQueue.__init__ 2 0 0 0 0 100%
bzfs_main/bzfs.py SmallPriorityQueue.clear 1 0 0 0 0 100%
bzfs_main/bzfs.py SmallPriorityQueue.push 1 0 0 0 0 100%
bzfs_main/bzfs.py SmallPriorityQueue.pop 1 0 0 0 0 100%
bzfs_main/bzfs.py SmallPriorityQueue.peek 1 0 0 0 0 100%
bzfs_main/bzfs.py SmallPriorityQueue.remove 6 0 0 2 0 100%
bzfs_main/bzfs.py SmallPriorityQueue.__len__ 1 0 0 0 0 100%
bzfs_main/bzfs.py SmallPriorityQueue.__contains__ 3 0 0 0 0 100%
bzfs_main/bzfs.py SmallPriorityQueue.__iter__ 1 0 0 0 0 100%
bzfs_main/bzfs.py SmallPriorityQueue.__repr__ 1 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedBool.__init__ 3 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedBool.value 2 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedBool.value 2 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedBool.get_and_set 4 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedBool.compare_and_set 5 0 0 2 0 100%
bzfs_main/bzfs.py SynchronizedBool.__bool__ 1 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedBool.__repr__ 1 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedBool.__str__ 1 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedDict.__init__ 3 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedDict.__getitem__ 2 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedDict.__setitem__ 2 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedDict.__delitem__ 2 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedDict.__contains__ 2 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedDict.__len__ 2 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedDict.__repr__ 2 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedDict.__str__ 2 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedDict.get 2 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedDict.pop 2 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedDict.clear 2 0 0 0 0 100%
bzfs_main/bzfs.py SynchronizedDict.items 2 0 0 0 0 100%
bzfs_main/bzfs.py _XFinally.__init__ 1 0 0 0 0 100%
bzfs_main/bzfs.py _XFinally.__exit__ 8 0 0 2 0 100%
bzfs_main/bzfs.py xfinally 1 0 0 0 0 100%
bzfs_main/bzfs.py ProgramValidator.__init__ 7 0 0 0 0 100%
bzfs_main/bzfs.py ProgramValidator.validate_program 16 0 0 16 0 100%
bzfs_main/bzfs.py ProgramValidator._validate_program 3 0 0 2 0 100%
bzfs_main/bzfs.py (no function) 540 1 1 4 1 99%
bzfs_main/bzfs_jobrunner.py argument_parser 44 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py main 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.__init__ 11 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main 153 0 0 42 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.zero_pad 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.jpad 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.npad 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.update_subjob_name 5 0 0 4 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.resolve_dataset 5 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.resolve_dst_dataset 6 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.prune_src 6 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.monitor_snapshots_opts 6 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.build_monitor_plan 2 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_main.build_monitor_plan.alert_dicts 6 0 0 2 0 100%
bzfs_main/bzfs_jobrunner.py Job.replication_opts 11 0 0 2 0 100%
bzfs_main/bzfs_jobrunner.py Job.skip_nonexisting_local_dst_pools 23 1 0 8 1 94%
bzfs_main/bzfs_jobrunner.py Job.skip_nonexisting_local_dst_pools.zpool 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_subjobs 36 0 0 10 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_subjob 46 0 0 6 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_worker_job_in_current_thread 15 0 0 4 0 100%
bzfs_main/bzfs_jobrunner.py Job._bzfs_run_main 3 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.run_worker_job_spawn_process_per_job 23 0 0 4 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_src_hosts 5 0 0 2 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_dst_hosts 8 0 0 4 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_dst_root_datasets 6 0 0 2 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_snapshot_plan 11 0 0 6 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_monitor_snapshot_plan 15 0 0 8 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_is_subset 7 0 0 6 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_host_name 2 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_non_empty_string 3 0 0 2 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_non_negative_int 3 0 0 2 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_true 2 0 0 2 0 100%
bzfs_main/bzfs_jobrunner.py Job.validate_type 9 0 0 8 0 100%
bzfs_main/bzfs_jobrunner.py Job.die 2 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Stats.__init__ 8 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Stats.__repr__ 5 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py Stats.__repr__.pct 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py dedupe 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py flatten 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py shuffle_dict 3 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py sorted_dict 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py sanitize 3 0 0 2 0 100%
bzfs_main/bzfs_jobrunner.py log_suffix 2 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py format_dict 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py pretty_print_formatter 3 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py pretty_print_formatter.PrettyPrintFormatter.__str__ 2 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py detect_loopback_address 15 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py convert_ipv6 1 0 0 0 0 100%
bzfs_main/bzfs_jobrunner.py (no function) 62 1 0 2 1 97%
bzfs_main/utils.py cut 8 0 0 4 0 100%
bzfs_main/utils.py (no function) 2 0 0 0 0 100%
Total   5269 24 2 1804 16 99%

No items found using the specified filter.