Skip to content

panic #63

@juev

Description

@juev

github.com/flant/shell-operator

❯ go test ./... -v
?       github.com/flant/shell-operator/cmd/shell-operator      [no test files]
?       github.com/flant/shell-operator/pkg/app [no test files]
=== RUN   TestConfig_Register
--- PASS: TestConfig_Register (0.00s)
=== RUN   TestConfig_OnChange
--- PASS: TestConfig_OnChange (0.00s)
=== RUN   TestConfig_Errors
--- PASS: TestConfig_Errors (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/config      (cached)
?       github.com/flant/shell-operator/pkg/debug       [no test files]
=== RUN   TestRunAndLogLines
=== RUN   TestRunAndLogLines/simple_log
=== RUN   TestRunAndLogLines/not_json_log
=== RUN   TestRunAndLogLines/long_file_must_be_truncated
=== RUN   TestRunAndLogLines/long_file_non_json_must_be_truncated
=== RUN   TestRunAndLogLines/invalid_json_structure
=== RUN   TestRunAndLogLines/multiline
=== RUN   TestRunAndLogLines/multiline_non_json
=== RUN   TestRunAndLogLines/multiline_non_json_with_json_proxy_on
=== RUN   TestRunAndLogLines/multiline_json
=== RUN   TestRunAndLogLines/input_json_nest
--- PASS: TestRunAndLogLines (0.09s)
    --- PASS: TestRunAndLogLines/simple_log (0.00s)
    --- PASS: TestRunAndLogLines/not_json_log (0.00s)
    --- PASS: TestRunAndLogLines/long_file_must_be_truncated (0.06s)
    --- PASS: TestRunAndLogLines/long_file_non_json_must_be_truncated (0.02s)
    --- PASS: TestRunAndLogLines/invalid_json_structure (0.00s)
    --- PASS: TestRunAndLogLines/multiline (0.00s)
    --- PASS: TestRunAndLogLines/multiline_non_json (0.00s)
    --- PASS: TestRunAndLogLines/multiline_non_json_with_json_proxy_on (0.00s)
    --- PASS: TestRunAndLogLines/multiline_json (0.00s)
    --- PASS: TestRunAndLogLines/input_json_nest (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/executor    (cached)
?       github.com/flant/shell-operator/pkg/filter      [no test files]
=== RUN   Test_ApplyFilter_SingleDocumentModification
--- PASS: Test_ApplyFilter_SingleDocumentModification (0.00s)
=== RUN   Test_ApplyFilter_ExtractValuesFromDocument
--- PASS: Test_ApplyFilter_ExtractValuesFromDocument (0.00s)
=== RUN   Test_ApplyFilter_MultipleJsonDocumentsInArray
--- PASS: Test_ApplyFilter_MultipleJsonDocumentsInArray (0.00s)
=== RUN   Test_ApplyFilter_InvalidFilter
--- PASS: Test_ApplyFilter_InvalidFilter (0.00s)
=== RUN   Test_ApplyFilter_InvalidJson
--- PASS: Test_ApplyFilter_InvalidJson (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/filter/jq   (cached)
=== RUN   Test_HookManager_Init
{"level":"info","msg":"Initialize hooks manager. Search for and load all hooks.","time":"2025-03-29T08:52:47+03:00"}
--- PASS: Test_HookManager_Init (6.61s)
=== RUN   Test_HookManager_GetHookNames
{"level":"info","msg":"Initialize hooks manager. Search for and load all hooks.","time":"2025-03-29T08:52:54+03:00"}
--- PASS: Test_HookManager_GetHookNames (0.03s)
=== RUN   TestHookController_HandleValidatingEvent
{"level":"info","msg":"Initialize hooks manager. Search for and load all hooks.","time":"2025-03-29T08:52:54+03:00"}
--- PASS: TestHookController_HandleValidatingEvent (0.32s)
=== RUN   Test_HookManager_conversion_chains
{"level":"info","msg":"Initialize hooks manager. Search for and load all hooks.","time":"2025-03-29T08:52:54+03:00"}
--- PASS: Test_HookManager_conversion_chains (0.35s)
=== RUN   Test_HookManager_conversion_chains_full
{"level":"info","msg":"Initialize hooks manager. Search for and load all hooks.","time":"2025-03-29T08:52:55+03:00"}
--- PASS: Test_HookManager_conversion_chains_full (0.35s)
=== RUN   Test_HookManager_onstartup_order
{"level":"info","msg":"Initialize hooks manager. Search for and load all hooks.","time":"2025-03-29T08:52:55+03:00"}
--- PASS: Test_HookManager_onstartup_order (0.65s)
=== RUN   Test_Hook_SafeName
--- PASS: Test_Hook_SafeName (0.00s)
=== RUN   Test_CreateLimiter
=== RUN   Test_CreateLimiter/Nil_run_settings:_should_return_limiter_with_defaults
=== RUN   Test_CreateLimiter/Empty_settings:_should_return_limiter_with_defaults
=== RUN   Test_CreateLimiter/Burst_is_zero,_limit_is_non-zero:_should_return_limiter_with_zero_burst_and_converted_interval
=== RUN   Test_CreateLimiter/Burst_is_non-zero,_limit_is_zero:_should_return_limiter_with_default_limiter_and_passed_burst
=== RUN   Test_CreateLimiter/Burst_and_limit_are_passed:_should_run_limiter_with_passed_burst_and_converted_interval
--- PASS: Test_CreateLimiter (0.00s)
    --- PASS: Test_CreateLimiter/Nil_run_settings:_should_return_limiter_with_defaults (0.00s)
    --- PASS: Test_CreateLimiter/Empty_settings:_should_return_limiter_with_defaults (0.00s)
    --- PASS: Test_CreateLimiter/Burst_is_zero,_limit_is_non-zero:_should_return_limiter_with_zero_burst_and_converted_interval (0.00s)
    --- PASS: Test_CreateLimiter/Burst_is_non-zero,_limit_is_zero:_should_return_limiter_with_default_limiter_and_passed_burst (0.00s)
    --- PASS: Test_CreateLimiter/Burst_and_limit_are_passed:_should_run_limiter_with_passed_burst_and_converted_interval (0.00s)
=== RUN   Test_Hook_WithConfig
=== RUN   Test_Hook_WithConfig/simple
=== RUN   Test_Hook_WithConfig/with_validation_error
--- PASS: Test_Hook_WithConfig (0.00s)
    --- PASS: Test_Hook_WithConfig/simple (0.00s)
    --- PASS: Test_Hook_WithConfig/with_validation_error (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/hook        (cached)
testing: warning: no tests to run
PASS
ok      github.com/flant/shell-operator/pkg/hook/binding_context        (cached) [no tests to run]
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/load_unknown_version
error was: config version: 'configVersion' value '1.0.1-unknown' is unsupported
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/load_empty_version
error was: config version: 'configVersion' value '' is unsupported
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v0_onStartup_config
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v0_with_schedules_and_onKubernetesEvent
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_onStartup_config
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_onStartup_bad_value
expected error was: 1 error occurred:
        * onStartup must be of type integer: "string"


=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_with_schedules
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_with_onStartup_and_schedule
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_with_onStartup_and_kubernetes
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_with_snapshots_in_schedule
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_yaml_full_config
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetes_with_empty_nameSelector.matchNames
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetes_error_on_missing_kind
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetes_error_on_bad_apiVersion
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetes_error_on_metadata.name
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetes_error_on_empty_value_in_matchLabels
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_includeSnapshotsFrom_for_group
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetes_error_on_group_and_includeSnapshotsFrom
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_executeHookOnSynchronization
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_bad_executeHookOnSynchronization
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetesValidating
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetesValidating_name_error
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetesValidating_timeoutSeconds_out_of_range
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetesCustomResourceConversion
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetesCustomResourceConversion_with_name_only
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetesCustomResourceConversion_with_no_crdName
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetesCustomResourceConversion_with_invalid_conversion
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_settings
=== RUN   Test_HookConfig_VersionedConfig_LoadAndValidate/v1_settings_with_error
--- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate (0.01s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/load_unknown_version (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/load_empty_version (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v0_onStartup_config (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v0_with_schedules_and_onKubernetesEvent (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_onStartup_config (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_onStartup_bad_value (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_with_schedules (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_with_onStartup_and_schedule (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_with_onStartup_and_kubernetes (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_with_snapshots_in_schedule (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_yaml_full_config (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetes_with_empty_nameSelector.matchNames (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetes_error_on_missing_kind (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetes_error_on_bad_apiVersion (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetes_error_on_metadata.name (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetes_error_on_empty_value_in_matchLabels (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_includeSnapshotsFrom_for_group (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetes_error_on_group_and_includeSnapshotsFrom (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_executeHookOnSynchronization (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_bad_executeHookOnSynchronization (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetesValidating (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetesValidating_name_error (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetesValidating_timeoutSeconds_out_of_range (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetesCustomResourceConversion (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetesCustomResourceConversion_with_name_only (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetesCustomResourceConversion_with_no_crdName (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_kubernetesCustomResourceConversion_with_invalid_conversion (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_settings (0.00s)
    --- PASS: Test_HookConfig_VersionedConfig_LoadAndValidate/v1_settings_with_error (0.00s)
=== RUN   Test_HookConfig_V1_Kubernetes_Validate
=== RUN   Test_HookConfig_V1_Kubernetes_Validate/name_selector
=== RUN   Test_HookConfig_V1_Kubernetes_Validate/watch_event_is_array
=== RUN   Test_HookConfig_V1_Kubernetes_Validate/watch_event_is_empty_array
=== RUN   Test_HookConfig_V1_Kubernetes_Validate/executeHookOnEvent_is_array
=== RUN   Test_HookConfig_V1_Kubernetes_Validate/executeHookOnEvent_is_array_in_YAML
=== RUN   Test_HookConfig_V1_Kubernetes_Validate/executeHookOnEvent_is_empty_array
=== RUN   Test_HookConfig_V1_Kubernetes_Validate/no_watch_event_or_executeHookOnEvent
=== RUN   Test_HookConfig_V1_Kubernetes_Validate/bad_watch_event
=== RUN   Test_HookConfig_V1_Kubernetes_Validate/nameSelector_error
=== RUN   Test_HookConfig_V1_Kubernetes_Validate/many_errors_at_once
--- PASS: Test_HookConfig_V1_Kubernetes_Validate (0.00s)
    --- PASS: Test_HookConfig_V1_Kubernetes_Validate/name_selector (0.00s)
    --- PASS: Test_HookConfig_V1_Kubernetes_Validate/watch_event_is_array (0.00s)
    --- PASS: Test_HookConfig_V1_Kubernetes_Validate/watch_event_is_empty_array (0.00s)
    --- PASS: Test_HookConfig_V1_Kubernetes_Validate/executeHookOnEvent_is_array (0.00s)
    --- PASS: Test_HookConfig_V1_Kubernetes_Validate/executeHookOnEvent_is_array_in_YAML (0.00s)
    --- PASS: Test_HookConfig_V1_Kubernetes_Validate/executeHookOnEvent_is_empty_array (0.00s)
    --- PASS: Test_HookConfig_V1_Kubernetes_Validate/no_watch_event_or_executeHookOnEvent (0.00s)
    --- PASS: Test_HookConfig_V1_Kubernetes_Validate/bad_watch_event (0.00s)
    --- PASS: Test_HookConfig_V1_Kubernetes_Validate/nameSelector_error (0.00s)
    --- PASS: Test_HookConfig_V1_Kubernetes_Validate/many_errors_at_once (0.00s)
=== RUN   Test_MergeArrays
=== RUN   Test_MergeArrays/simple
=== RUN   Test_MergeArrays/empty
=== RUN   Test_MergeArrays/no_intersect
--- PASS: Test_MergeArrays (0.00s)
    --- PASS: Test_MergeArrays/simple (0.00s)
    --- PASS: Test_MergeArrays/empty (0.00s)
    --- PASS: Test_MergeArrays/no_intersect (0.00s)
=== RUN   Test_GetSchema
--- PASS: Test_GetSchema (0.00s)
=== RUN   Test_LoadSchema_From_Schemas
--- PASS: Test_LoadSchema_From_Schemas (0.00s)
=== RUN   Test_Validate_V1_With_Error
=== RUN   Test_Validate_V1_With_Error/v1_config_with_error
=== RUN   Test_Validate_V1_With_Error/v1_full_config
=== RUN   Test_Validate_V1_With_Error/v0_full_config
--- PASS: Test_Validate_V1_With_Error (0.00s)
    --- PASS: Test_Validate_V1_With_Error/v1_config_with_error (0.00s)
    --- PASS: Test_Validate_V1_With_Error/v1_full_config (0.00s)
    --- PASS: Test_Validate_V1_With_Error/v0_full_config (0.00s)
=== RUN   Test_Validate_V1_KubernetesValidating
=== RUN   Test_Validate_V1_KubernetesValidating/kubernetesValidating
    validator_test.go:197: version: v1
--- PASS: Test_Validate_V1_KubernetesValidating (0.00s)
    --- PASS: Test_Validate_V1_KubernetesValidating/kubernetesValidating (0.00s)
=== RUN   Test_VersionedUntyped_Load
=== RUN   Test_VersionedUntyped_Load/load_valid_json_object_with_version
=== RUN   Test_VersionedUntyped_Load/load_valid_yaml_with_version
=== RUN   Test_VersionedUntyped_Load/load_valid_json_without_version
=== RUN   Test_VersionedUntyped_Load/load_valid_yaml_without_version
=== RUN   Test_VersionedUntyped_Load/load_shell-operator_hook_json_configuration
=== RUN   Test_VersionedUntyped_Load/load_shell-operator_hook_yaml_configuration
=== RUN   Test_VersionedUntyped_Load/#00
--- PASS: Test_VersionedUntyped_Load (0.00s)
    --- PASS: Test_VersionedUntyped_Load/load_valid_json_object_with_version (0.00s)
    --- PASS: Test_VersionedUntyped_Load/load_valid_yaml_with_version (0.00s)
    --- PASS: Test_VersionedUntyped_Load/load_valid_json_without_version (0.00s)
    --- PASS: Test_VersionedUntyped_Load/load_valid_yaml_without_version (0.00s)
    --- PASS: Test_VersionedUntyped_Load/load_shell-operator_hook_json_configuration (0.00s)
    --- PASS: Test_VersionedUntyped_Load/load_shell-operator_hook_yaml_configuration (0.00s)
    --- PASS: Test_VersionedUntyped_Load/#00 (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/hook/config (cached)
=== RUN   Test_UpdateSnapshots
--- PASS: Test_UpdateSnapshots (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/hook/controller     (cached)
=== RUN   Test_HookMetadata_Access
--- PASS: Test_HookMetadata_Access (0.00s)
=== RUN   Test_HookMetadata_QueueDump_Task_Description
--- PASS: Test_HookMetadata_QueueDump_Task_Description (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/hook/task_metadata  (cached)
?       github.com/flant/shell-operator/pkg/hook/types  [no test files]
=== RUN   Test_ParseOperations
=== RUN   Test_ParseOperations/valid_create
=== RUN   Test_ParseOperations/invalid_create
=== RUN   Test_ParseOperations/valid_delete
=== RUN   Test_ParseOperations/invalid_delete
=== RUN   Test_ParseOperations/valid_patch
=== RUN   Test_ParseOperations/invalid_patch
--- PASS: Test_ParseOperations (0.00s)
    --- PASS: Test_ParseOperations/valid_create (0.00s)
    --- PASS: Test_ParseOperations/invalid_create (0.00s)
    --- PASS: Test_ParseOperations/valid_delete (0.00s)
    --- PASS: Test_ParseOperations/invalid_delete (0.00s)
    --- PASS: Test_ParseOperations/valid_patch (0.00s)
    --- PASS: Test_ParseOperations/invalid_patch (0.00s)
=== RUN   Test_PatchOperations
=== RUN   Test_PatchOperations/merge_patch
merge patch
=== RUN   Test_PatchOperations/merge_patch_a_missing_object
merge patch a missing object
=== RUN   Test_PatchOperations/merge_patch_with_ignoreMissingObject
merge patch with ignoreMissingObject
=== RUN   Test_PatchOperations/merge_patch_using_map
merge patch using map
=== RUN   Test_PatchOperations/merge_patch_via_YAML_spec
merge patch via YAML spec
=== RUN   Test_PatchOperations/merge_patch_a_missing_object_via_YAML_spec
merge patch a missing object via YAML spec
=== RUN   Test_PatchOperations/merge_patch_with_ignoreMissingObject_via_YAML_spec
merge patch with ignoreMissingObject via YAML spec
=== RUN   Test_PatchOperations/merge_patch_via_string_in_YAML_spec
merge patch via string in YAML spec
=== RUN   Test_PatchOperations/merge_patch_via_stringified_JSON_in_YAML_spec
merge patch via stringified JSON in YAML spec
=== RUN   Test_PatchOperations/json_patch
json patch
=== RUN   Test_PatchOperations/json_patch_a_missing_object
json patch a missing object
=== RUN   Test_PatchOperations/json_patch_with_ignoreMissingObject
json patch with ignoreMissingObject
=== RUN   Test_PatchOperations/json_patch_via_YAML_spec
json patch via YAML spec
=== RUN   Test_PatchOperations/json_patch_a_missing_object_via_YAML_spec
json patch a missing object via YAML spec
=== RUN   Test_PatchOperations/json_patch_with_ignoreMissingObject_via_YAML_spec
json patch with ignoreMissingObject via YAML spec
=== RUN   Test_PatchOperations/json_patch_via_stringified_JSON_in_YAML_spec
json patch via stringified JSON in YAML spec
=== RUN   Test_PatchOperations/filter_patch
filter patch
=== RUN   Test_PatchOperations/filter_patch_missing_object
filter patch missing object
=== RUN   Test_PatchOperations/filter_patch_with_ignoreMissingObject
filter patch with ignoreMissingObject
=== RUN   Test_PatchOperations/JQ_patch_via_YAML_spec
JQ patch via YAML spec
=== RUN   Test_PatchOperations/JQ_patch_missing_object_via_YAML_spec
JQ patch missing object via YAML spec
=== RUN   Test_PatchOperations/JQ_patch_with_ignoreMissingObject_via_YAML_spec
JQ patch with ignoreMissingObject via YAML spec
=== RUN   Test_PatchOperations/update_existing_object
update existing object
=== RUN   Test_PatchOperations/update_existing_object_via_YAML_spec
update existing object via YAML spec
--- PASS: Test_PatchOperations (0.01s)
    --- PASS: Test_PatchOperations/merge_patch (0.00s)
    --- PASS: Test_PatchOperations/merge_patch_a_missing_object (0.00s)
    --- PASS: Test_PatchOperations/merge_patch_with_ignoreMissingObject (0.00s)
    --- PASS: Test_PatchOperations/merge_patch_using_map (0.00s)
    --- PASS: Test_PatchOperations/merge_patch_via_YAML_spec (0.00s)
    --- PASS: Test_PatchOperations/merge_patch_a_missing_object_via_YAML_spec (0.00s)
    --- PASS: Test_PatchOperations/merge_patch_with_ignoreMissingObject_via_YAML_spec (0.00s)
    --- PASS: Test_PatchOperations/merge_patch_via_string_in_YAML_spec (0.00s)
    --- PASS: Test_PatchOperations/merge_patch_via_stringified_JSON_in_YAML_spec (0.00s)
    --- PASS: Test_PatchOperations/json_patch (0.00s)
    --- PASS: Test_PatchOperations/json_patch_a_missing_object (0.00s)
    --- PASS: Test_PatchOperations/json_patch_with_ignoreMissingObject (0.00s)
    --- PASS: Test_PatchOperations/json_patch_via_YAML_spec (0.00s)
    --- PASS: Test_PatchOperations/json_patch_a_missing_object_via_YAML_spec (0.00s)
    --- PASS: Test_PatchOperations/json_patch_with_ignoreMissingObject_via_YAML_spec (0.00s)
    --- PASS: Test_PatchOperations/json_patch_via_stringified_JSON_in_YAML_spec (0.00s)
    --- PASS: Test_PatchOperations/filter_patch (0.00s)
    --- PASS: Test_PatchOperations/filter_patch_missing_object (0.00s)
    --- PASS: Test_PatchOperations/filter_patch_with_ignoreMissingObject (0.00s)
    --- PASS: Test_PatchOperations/JQ_patch_via_YAML_spec (0.00s)
    --- PASS: Test_PatchOperations/JQ_patch_missing_object_via_YAML_spec (0.00s)
    --- PASS: Test_PatchOperations/JQ_patch_with_ignoreMissingObject_via_YAML_spec (0.00s)
    --- PASS: Test_PatchOperations/update_existing_object (0.00s)
    --- PASS: Test_PatchOperations/update_existing_object_via_YAML_spec (0.00s)
=== RUN   Test_CreateOperations
=== RUN   Test_CreateOperations/create_new_object
=== RUN   Test_CreateOperations/create_new_object_ignore_existing_object
=== RUN   Test_CreateOperations/create_existing_object
=== RUN   Test_CreateOperations/create_ignore_existing_object
=== RUN   Test_CreateOperations/create_new_object_via_YAML_spec
=== RUN   Test_CreateOperations/create_existing_object_via_YAML_spec
=== RUN   Test_CreateOperations/create_ignore_existing_object_via_YAML_spec
=== RUN   Test_CreateOperations/create_or_update_new_object_via_YAML_spec
=== RUN   Test_CreateOperations/create_new_object_via_string_in_YAML_spec
=== RUN   Test_CreateOperations/create_new_object_via_stringified_JSON_in_YAML_spec
=== RUN   Test_CreateOperations/create_new_object_via_stringified_JSON_in_JSON_spec
--- PASS: Test_CreateOperations (0.00s)
    --- PASS: Test_CreateOperations/create_new_object (0.00s)
    --- PASS: Test_CreateOperations/create_new_object_ignore_existing_object (0.00s)
    --- PASS: Test_CreateOperations/create_existing_object (0.00s)
    --- PASS: Test_CreateOperations/create_ignore_existing_object (0.00s)
    --- PASS: Test_CreateOperations/create_new_object_via_YAML_spec (0.00s)
    --- PASS: Test_CreateOperations/create_existing_object_via_YAML_spec (0.00s)
    --- PASS: Test_CreateOperations/create_ignore_existing_object_via_YAML_spec (0.00s)
    --- PASS: Test_CreateOperations/create_or_update_new_object_via_YAML_spec (0.00s)
    --- PASS: Test_CreateOperations/create_new_object_via_string_in_YAML_spec (0.00s)
    --- PASS: Test_CreateOperations/create_new_object_via_stringified_JSON_in_YAML_spec (0.00s)
    --- PASS: Test_CreateOperations/create_new_object_via_stringified_JSON_in_JSON_spec (0.00s)
=== RUN   Test_DeleteOperations
=== RUN   Test_DeleteOperations/delete_existing_object
=== RUN   Test_DeleteOperations/delete_missing_object
=== RUN   Test_DeleteOperations/delete_existing_object_via_YAML_spec
=== RUN   Test_DeleteOperations/delete_missing_object_via_YAML_spec
--- PASS: Test_DeleteOperations (2.00s)
    --- PASS: Test_DeleteOperations/delete_existing_object (1.00s)
    --- PASS: Test_DeleteOperations/delete_missing_object (0.00s)
    --- PASS: Test_DeleteOperations/delete_existing_object_via_YAML_spec (1.00s)
    --- PASS: Test_DeleteOperations/delete_missing_object_via_YAML_spec (0.00s)
=== RUN   Test_GetSchema
--- PASS: Test_GetSchema (0.00s)
=== RUN   Test_LoadSchema_From_Schemas
--- PASS: Test_LoadSchema_From_Schemas (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/kube/object_patch   (cached)
=== RUN   TestApplyFilter
=== RUN   TestApplyFilter/filter_func_with_error
--- PASS: TestApplyFilter (0.00s)
    --- PASS: TestApplyFilter/filter_func_with_error (0.00s)
=== RUN   Test_MainKubeEventsManager_Run
--- PASS: Test_MainKubeEventsManager_Run (0.00s)
=== RUN   Test_MainKubeEventsManager_HandleEvents
--- SKIP: Test_MainKubeEventsManager_HandleEvents (0.00s)
=== RUN   Test_FakeClient_CatchUpdates
--- SKIP: Test_FakeClient_CatchUpdates (0.00s)
=== RUN   Test_Monitor_should_handle_dynamic_ns_events
--- PASS: Test_Monitor_should_handle_dynamic_ns_events (0.32s)
=== RUN   Test_RandomizedResyncPeriod
--- SKIP: Test_RandomizedResyncPeriod (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/kube_events_manager (cached)
=== RUN   Test_ObjectAndFilterResult_ToJson
--- PASS: Test_ObjectAndFilterResult_ToJson (0.00s)
=== RUN   Test_ObjectAndFilterResult_ToJson_EmptyFilterResult
--- PASS: Test_ObjectAndFilterResult_ToJson_EmptyFilterResult (0.00s)
=== RUN   Test_ObjectAndFilterResult_ToJson_NullFilterResult
--- PASS: Test_ObjectAndFilterResult_ToJson_NullFilterResult (0.00s)
=== RUN   Test_ObjectAndFilterResult_ToJson_Empty_JQFilter_Has_FilterResult
--- PASS: Test_ObjectAndFilterResult_ToJson_Empty_JQFilter_Has_FilterResult (0.00s)
=== RUN   Test_Sort_ByNamespaceAndName
--- PASS: Test_Sort_ByNamespaceAndName (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/kube_events_manager/types   (cached)
testing: warning: no tests to run
PASS
ok      github.com/flant/shell-operator/pkg/metric      (cached) [no tests to run]
?       github.com/flant/shell-operator/pkg/metric_storage      [no test files]
=== RUN   Test_ValidateMetricOperations
=== RUN   Test_ValidateMetricOperations/simple
=== RUN   Test_ValidateMetricOperations/action_set
=== RUN   Test_ValidateMetricOperations/set_shortcut
=== RUN   Test_ValidateMetricOperations/invalid
--- PASS: Test_ValidateMetricOperations (0.00s)
    --- PASS: Test_ValidateMetricOperations/simple (0.00s)
    --- PASS: Test_ValidateMetricOperations/action_set (0.00s)
    --- PASS: Test_ValidateMetricOperations/set_shortcut (0.00s)
    --- PASS: Test_ValidateMetricOperations/invalid (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/metric_storage/operation    (cached)
=== RUN   Test_CounterAdd
--- PASS: Test_CounterAdd (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/metric_storage/vault        (cached)
=== RUN   Test_ScheduleManager_Add
=== RUN   Test_ScheduleManager_Add/crontab
=== RUN   Test_ScheduleManager_Add/incorrect_crontab_format_(value)
2025/03/29 08:52:50 End of range (22) above maximum (12): 22
=== RUN   Test_ScheduleManager_Add/incorrect_crontab_format_(fields)
2025/03/29 08:52:50 Expected 5 or 6 fields, found 1: incorrect
--- PASS: Test_ScheduleManager_Add (0.00s)
    --- PASS: Test_ScheduleManager_Add/crontab (0.00s)
    --- PASS: Test_ScheduleManager_Add/incorrect_crontab_format_(value) (0.00s)
    --- PASS: Test_ScheduleManager_Add/incorrect_crontab_format_(fields) (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/schedule_manager    (cached)
?       github.com/flant/shell-operator/pkg/schedule_manager/types      [no test files]
=== RUN   Test_CombineBindingContext_MultipleHooks
--- PASS: Test_CombineBindingContext_MultipleHooks (0.00s)
=== RUN   Test_CombineBindingContext_Nil_On_NoCombine
--- PASS: Test_CombineBindingContext_Nil_On_NoCombine (0.00s)
=== RUN   Test_CombineBindingContext_Group_Compaction
--- PASS: Test_CombineBindingContext_Group_Compaction (0.00s)
=== RUN   Test_CombineBindingContext_Group_Type
--- PASS: Test_CombineBindingContext_Group_Type (0.00s)
=== RUN   Test_Operator_startup_tasks
{"level":"info","msg":"Initialize hooks manager. Search for and load all hooks.","time":"2025-03-29T08:52:50+03:00"}
--- PASS: Test_Operator_startup_tasks (3.75s)
PASS
ok      github.com/flant/shell-operator/pkg/shell-operator      (cached)
?       github.com/flant/shell-operator/pkg/task        [no test files]
=== RUN   Test_Sort_ByNamespaceAndName
--- PASS: Test_Sort_ByNamespaceAndName (0.00s)
=== RUN   Test_Dump
=== RUN   Test_Dump/empty_set
=== RUN   Test_Dump/single_main_queue
    dump_test.go:114: Summary:
        - 'main' queue: empty.
        - no tasks to handle.

    dump_test.go:119: {"active":[],"summary":{"mainQueueTasks":0,"otherQueues":{"active":0,"empty":0,"tasks":0},"totalTasks":0}}
=== RUN   Test_Dump/main_queue_as_active
=== RUN   Test_Dump/fill_active_queue
=== RUN   Test_Dump/create_empty_queue
    dump_test.go:148: Queue 'main': length 5, status: ''

         1. :::test_task_main_0004
         2. :::test_task_main_0003
         3. :::test_task_main_0002
         4. :::test_task_main_0001
         5. :::test_task_main_0000

        Queue 'active-queue': length 4, status: ''

         1. :::test_task_active-queue_0003
         2. :::test_task_active-queue_0002
         3. :::test_task_active-queue_0001
         4. :::test_task_active-queue_0000

        Empty queues (1):
        - empty

        Summary:
        - 'main' queue: 5 tasks.
        - 2 other queues (1 active, 1 empty): 4 tasks.
        - total 9 tasks to handle.

=== RUN   Test_Dump/omit_empty_queue
--- PASS: Test_Dump (0.00s)
    --- PASS: Test_Dump/empty_set (0.00s)
    --- PASS: Test_Dump/single_main_queue (0.00s)
    --- PASS: Test_Dump/main_queue_as_active (0.00s)
    --- PASS: Test_Dump/fill_active_queue (0.00s)
    --- PASS: Test_Dump/create_empty_queue (0.00s)
    --- PASS: Test_Dump/omit_empty_queue (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/task/dump   (cached)
=== RUN   Test_TasksQueue_Remove
--- PASS: Test_TasksQueue_Remove (0.00s)
=== RUN   Test_ExponentialBackoff
--- PASS: Test_ExponentialBackoff (0.31s)
=== RUN   Test_CancelDelay
--- PASS: Test_CancelDelay (0.19s)
PASS
ok      github.com/flant/shell-operator/pkg/task/queue  (cached)
=== RUN   TestChecksum
val1 chksum: bf1483c97ec062780aada11fe98a311f
val2 chksum: bf1483c97ec062780aada11fe98a311f
--- PASS: TestChecksum (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/utils/checksum      (cached)
=== RUN   Test_Delay
--- PASS: Test_Delay (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/utils/exponential_backoff   (cached)
=== RUN   TestRecursiveGetExecutablePaths
=== RUN   TestRecursiveGetExecutablePaths/get_executable_files
--- PASS: TestRecursiveGetExecutablePaths (0.00s)
    --- PASS: TestRecursiveGetExecutablePaths/get_executable_files (0.00s)
=== RUN   TestRecursiveCheckLibDirectory
=== RUN   TestRecursiveCheckLibDirectory/check_lib_directory
--- PASS: TestRecursiveCheckLibDirectory (0.00s)
    --- PASS: TestRecursiveCheckLibDirectory/check_lib_directory (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/utils/file  (cached)
?       github.com/flant/shell-operator/pkg/utils/labels        [no test files]
?       github.com/flant/shell-operator/pkg/utils/measure       [no test files]
?       github.com/flant/shell-operator/pkg/utils/signal        [no test files]
=== RUN   Test_TrimGroup
--- PASS: Test_TrimGroup (0.00s)
=== RUN   Test_SafeURLString
=== RUN   Test_SafeURLString/importantHook
=== RUN   Test_SafeURLString/hooks/nextHook
=== RUN   Test_SafeURLString/weird_spaced_Name
=== RUN   Test_SafeURLString/weird---dashed---Name
=== RUN   Test_SafeURLString/utf8_странное_имя_для_binding
--- PASS: Test_SafeURLString (0.00s)
    --- PASS: Test_SafeURLString/importantHook (0.00s)
    --- PASS: Test_SafeURLString/hooks/nextHook (0.00s)
    --- PASS: Test_SafeURLString/weird_spaced_Name (0.00s)
    --- PASS: Test_SafeURLString/weird---dashed---Name (0.00s)
    --- PASS: Test_SafeURLString/utf8_странное_имя_для_binding (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/utils/string_helper (cached)
?       github.com/flant/shell-operator/pkg/utils/structured-logger     [no test files]
=== RUN   Test_DetectConfigurationAndWebhook
=== RUN   Test_DetectConfigurationAndWebhook/simple
=== RUN   Test_DetectConfigurationAndWebhook/composite_webhookId
=== RUN   Test_DetectConfigurationAndWebhook/no_webhookId
=== RUN   Test_DetectConfigurationAndWebhook/no_configurationId
=== RUN   Test_DetectConfigurationAndWebhook/empty_1
=== RUN   Test_DetectConfigurationAndWebhook/empty_2
--- PASS: Test_DetectConfigurationAndWebhook (0.00s)
    --- PASS: Test_DetectConfigurationAndWebhook/simple (0.00s)
    --- PASS: Test_DetectConfigurationAndWebhook/composite_webhookId (0.00s)
    --- PASS: Test_DetectConfigurationAndWebhook/no_webhookId (0.00s)
    --- PASS: Test_DetectConfigurationAndWebhook/no_configurationId (0.00s)
    --- PASS: Test_DetectConfigurationAndWebhook/empty_1 (0.00s)
    --- PASS: Test_DetectConfigurationAndWebhook/empty_2 (0.00s)
=== RUN   Test_Manager_AddWebhook
{"level":"info","msg":"Initialize admission webhooks manager. Load certificates.","time":"2025-03-29T08:52:52+03:00"}
--- PASS: Test_Manager_AddWebhook (0.00s)
=== RUN   Test_AdmissionResponseFromFile_Allowed
--- PASS: Test_AdmissionResponseFromFile_Allowed (0.00s)
=== RUN   Test_AdmissionResponseFromFile_AllowedWithWarnings
--- PASS: Test_AdmissionResponseFromFile_AllowedWithWarnings (0.00s)
=== RUN   Test_AdmissionResponseFromFile_NotAllowed_WithMessage
--- PASS: Test_AdmissionResponseFromFile_NotAllowed_WithMessage (0.00s)
=== RUN   Test_AdmissionResponseFromFile_NotAllowed_WithoutMessage
--- PASS: Test_AdmissionResponseFromFile_NotAllowed_WithoutMessage (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/webhook/admission   (cached)
=== RUN   Test_VersionsMatched
--- PASS: Test_VersionsMatched (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/webhook/conversion  (cached)
=== RUN   Test_ServerStart
--- PASS: Test_ServerStart (0.00s)
=== RUN   Test_Client_CA
--- PASS: Test_Client_CA (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/webhook/server      (cached)
=== RUN   Test_Validate
--- PASS: Test_Validate (0.00s)
PASS
ok      github.com/flant/shell-operator/pkg/webhook/validating/validation       (cached)
=== RUN   Test_BindingContextGenerator
--- PASS: Test_BindingContextGenerator (0.37s)
=== RUN   Test_RegisterCRD
--- PASS: Test_RegisterCRD (0.16s)
=== RUN   Test_PreferredGVR
--- PASS: Test_PreferredGVR (0.06s)
=== RUN   Test_Synchronization
--- PASS: Test_Synchronization (0.06s)
=== RUN   Test_Groups
--- PASS: Test_Groups (0.06s)
=== RUN   Test_ExecuteOnSynchronization_false
--- PASS: Test_ExecuteOnSynchronization_false (0.06s)
=== RUN   Test_RunSchedule
--- PASS: Test_RunSchedule (0.37s)
PASS
ok      github.com/flant/shell-operator/test/hook/context       (cached)
?       github.com/flant/shell-operator/test/utils      [no test files]
❯ go test ./... -v | gotestfmt
📦 github.com/flant/shell-operator/cmd/shell-operator
  🛑 no test files

📦 github.com/flant/shell-operator/pkg/app
  🛑 no test files

📦 github.com/flant/shell-operator/pkg/config

📦 github.com/flant/shell-operator/pkg/debug
  🛑 no test files

📦 github.com/flant/shell-operator/pkg/executor

📦 github.com/flant/shell-operator/pkg/filter
  🛑 no test files

📦 github.com/flant/shell-operator/pkg/filter/jq

panic: unexpected output encountered: testing: warning: no tests to run (Did you use -json on go test?)

goroutine 7 [running]:
github.com/gotesttools/gotestfmt/v2/parser.parse(0x140000201c0, 0x14000020230, 0x140000202a0, 0x14000020310, 0x14000020380)
        /Users/devsyukov/go/pkg/mod/github.com/gotesttools/gotestfmt/[email protected]/parser/parse.go:166 +0xcd8
created by github.com/gotesttools/gotestfmt/v2/parser.Parse in goroutine 1
        /Users/devsyukov/go/pkg/mod/github.com/gotesttools/gotestfmt/[email protected]/parser/parse.go:26 +0xec

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions