//go:build linux && (amd64 || arm64)
** Copyright (C) 2001-2025 Zabbix SIA
** This program is free software: you can redistribute it and/or modify it under the terms of
** the GNU Affero General Public License as published by the Free Software Foundation, version 3.
** This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
** without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
** See the GNU Affero General Public License for more details.
** You should have received a copy of the GNU Affero General Public License along with this program.
** If not, see <https://www.gnu.org/licenses/>.
func TestWilcardMinimize(t *testing.T) {
var expectedResult = []string{
if expectedResult[i] != w {
t.Errorf("Result \"%s\" does not match with expectations \"%s\"", w, expectedResult[i])
func TestWildcardMatch(t *testing.T) {
var scenarios = []Scenario{
{pattern: "foo", values: []string{"foo"}},
{pattern: "*", values: []string{"abc", "123", ""}},
{pattern: "", values: []string{""}},
{pattern: "lo*ip*m", values: []string{"lorem_ipsum"}},
{pattern: "a*bc", values: []string{"aaa123bc", "aXbXbcXbc"}},
{pattern: "a*bc*d", values: []string{"aXbXbcXXd", "aXbXabcXXd"}},
{pattern: "abc*", values: []string{"abc", "abcdef"}},
{pattern: "*abc", values: []string{"abc", "123abc"}},
{pattern: "*abc*", values: []string{"abc", "123abcdef"}},
{pattern: "a***c", values: []string{"ac", "abc", "a_whatever_c"}},
{pattern: "***c*e", values: []string{"cde", "abce", "whatever_c123e"}},
{pattern: "a*c***", values: []string{"ac", "abc", "a1c_whatever"}},