...

Text file src/edge-infra.dev/pkg/edge/logging/fluentbit/cluster-labels_test.lua

Documentation: edge-infra.dev/pkg/edge/logging/fluentbit

     1-- cluster-labels_test.lua
     2-- Runs unit tests against the severity filtering code from cluster-labels.lua
     3-- requires 2 arguments 
     4--   1. a path to the test library:    e.g.: /Users/ur1337/edge-infra/third_party/lua/simple_test/src
     5--   2. a path to the test target dir: e.g.: /Users/ur1337/edge-infra/pkg/edge/logging/fluentbit
     6
     7local test_library = arg[1] .. "/?.lua"
     8local target_dir = arg[2] .. "/?.lua"
     9local test_data = arg[2] .. "/testdata"
    10
    11-- the test library and target directory need to be added to package.path so we can 'require' them
    12package.path = package.path .. ";" .. test_library .. ";" .. target_dir .. ";" .. test_data
    13
    14local test = require("simple_test.init")
    15local clusterlabels = require("cluster-labels")
    16
    17local config_map_test_cases = {
    18    {
    19        description = "should return table with test-name included",
    20        input = test_data .. "/cluster.name",
    21        assert_func = function(t,result) t.equal(result, "test-name") end
    22    },
    23    {
    24        description = "configmap doesn't exist, result should be nil",
    25        input = test_data .. "/cluster.name-does-not-exist",
    26        assert_func = function(t,result) t.equal(result, nil) end
    27    },
    28    {
    29        description = "configmap is empty, result should be nil",
    30        input = test_data .. "/cluster.name.empty",
    31        assert_func = function(t,result) t.equal(result, nil) end
    32    }
    33}
    34
    35local process_name_test_cases = {
    36    {
    37        description = "process_name test",
    38        configfile = test_data .. "/cluster.name",
    39        tag = "k8s-container.dummy.tag",
    40        timestamp = "2022-03-04T12:34:56.789Z",
    41        record = { ncrEdge = {} },
    42        assert_func = function(t,result) t.equal(result["ncrEdge"]["store_name"], "test-name") end,
    43    },
    44    {
    45        description = "process_name configmap does not exist",
    46        configfile = test_data .. "/cluster.name-does-not-exist",
    47        tag = "k8s-container.dummy.tag",
    48        timestamp = "2022-03-04T12:34:56.789Z",
    49        record = { ncrEdge = {} },
    50        assert_func = function(t,result) t.equal(result["ncrEdge"]["store_name"], "undefined") end,
    51    },
    52    {
    53        description = "process_name empty configmap",
    54        configfile = test_data .. "/cluster.name.empty",
    55        tag = "k8s-container.dummy.tag",
    56        timestamp = "2022-03-04T12:34:56.789Z",
    57        record = { ncrEdge = {} },
    58        assert_func = function(t,result) t.equal(result["ncrEdge"]["store_name"], "undefined") end,
    59    },
    60}
    61
    62local process_fleet_test_cases = {
    63    {
    64        description = "process_fleet banner-infra",
    65        configfile = test_data .. "/cluster.fleet",
    66        tag = "k8s-container.dummy.tag",
    67        timestamp = "2022-03-04T12:34:56.789Z",
    68        record = { ncrEdge = {} },
    69        assert_func = function(t,result) t.equal(result["ncrEdge"]["cluster_fleet"], "banner-infra") end,
    70    },
    71    {
    72        description = "process_fleet store",
    73        configfile = test_data .. "/cluster.fleet-store",
    74        tag = "k8s-container.dummy.tag",
    75        timestamp = "2022-03-04T12:34:56.789Z",
    76        record = { ncrEdge = {} },
    77        assert_func = function(t,result) t.equal(result["ncrEdge"]["cluster_fleet"], "store") end,
    78    },
    79    {
    80        description = "process_fleet empty",
    81        configfile = test_data .. "/cluster.fleet.empty",
    82        tag = "k8s-container.dummy.tag",
    83        timestamp = "2022-03-04T12:34:56.789Z",
    84        record = { ncrEdge = {} },
    85        assert_func = function(t,result) t.equal(result["ncrEdge"]["cluster_fleet"], "generic") end,
    86    },
    87    {
    88        description = "process_fleet cfg does not exist",
    89        configfile = test_data .. "/cluster.fleet-does-not-exist",
    90        tag = "k8s-container.dummy.tag",
    91        timestamp = "2022-03-04T12:34:56.789Z",
    92        record = { ncrEdge = {} },
    93        assert_func = function(t,result) t.equal(result["ncrEdge"]["cluster_fleet"], "generic") end,
    94    },
    95}
    96
    97print("-------------------------------------------")
    98print("cluster names config_map_test_cases started")
    99print("-------------------------------------------")
   100for _, case in ipairs(config_map_test_cases) do
   101    test(case.description, function(t)
   102        local result = clusterlabels.parse_configmap(case.input)
   103        case.assert_func(t, result)
   104    end)
   105end
   106
   107print("-------------------------------")
   108print("process_name_test_cases started")
   109print("-------------------------------")
   110for _, case in ipairs(process_name_test_cases) do
   111    test(case.description, function(t)
   112        local result_tag, result_time, result_record = clusterlabels.process_name_main(case.tag, case.timestamp, case.record, case.configfile)
   113        case.assert_func(t, result_record)
   114    end)
   115end
   116
   117print("-------------------------------")
   118print("process_fleet_test_cases started")
   119print("-------------------------------")
   120for _, case in ipairs(process_fleet_test_cases) do
   121    test(case.description, function(t)
   122        local result_tag, result_time, result_record = clusterlabels.process_fleet_main(case.tag, case.timestamp, case.record, case.configfile)
   123        case.assert_func(t, result_record)
   124    end)
   125end

View as plain text