283 lines
4.3 KiB
Go
283 lines
4.3 KiB
Go
/*
|
|
* ============================================================================
|
|
* Projekt.....: rs2322tcp
|
|
* Datei.......: internal/client/virtual_port_validation_test.go
|
|
* Copyright (C) 2026 Dieter Lang
|
|
*
|
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
*
|
|
* Beschreibung:
|
|
* Tests für den Vergleich der konfigurierten und tatsächlich vorhandenen
|
|
* virtuellen rs2322tcp-Schnittstellen.
|
|
* ============================================================================
|
|
*/
|
|
package client
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestCompareVirtualPortsIdentical(t *testing.T) {
|
|
configured := []string{
|
|
"/dev/ttyUSB100",
|
|
"/dev/ttyUSB101",
|
|
}
|
|
|
|
available := []string{
|
|
"/dev/ttyUSB101",
|
|
"/dev/ttyUSB100",
|
|
}
|
|
|
|
got := compareVirtualPorts(
|
|
configured,
|
|
available,
|
|
)
|
|
|
|
if len(got.Missing) != 0 {
|
|
t.Errorf(
|
|
"Missing = %v, want empty",
|
|
got.Missing,
|
|
)
|
|
}
|
|
|
|
if len(got.Extra) != 0 {
|
|
t.Errorf(
|
|
"Extra = %v, want empty",
|
|
got.Extra,
|
|
)
|
|
}
|
|
}
|
|
|
|
func TestCompareVirtualPortsMissing(t *testing.T) {
|
|
configured := []string{
|
|
"/dev/ttyUSB100",
|
|
"/dev/ttyUSB101",
|
|
"/dev/ttyUSB102",
|
|
}
|
|
|
|
available := []string{
|
|
"/dev/ttyUSB100",
|
|
"/dev/ttyUSB101",
|
|
}
|
|
|
|
got := compareVirtualPorts(
|
|
configured,
|
|
available,
|
|
)
|
|
|
|
wantMissing := []string{
|
|
"/dev/ttyUSB102",
|
|
}
|
|
|
|
if !reflect.DeepEqual(got.Missing, wantMissing) {
|
|
t.Errorf(
|
|
"Missing = %v, want %v",
|
|
got.Missing,
|
|
wantMissing,
|
|
)
|
|
}
|
|
|
|
if len(got.Extra) != 0 {
|
|
t.Errorf(
|
|
"Extra = %v, want empty",
|
|
got.Extra,
|
|
)
|
|
}
|
|
}
|
|
|
|
func TestCompareVirtualPortsExtra(t *testing.T) {
|
|
configured := []string{
|
|
"/dev/ttyUSB100",
|
|
"/dev/ttyUSB101",
|
|
}
|
|
|
|
available := []string{
|
|
"/dev/ttyUSB100",
|
|
"/dev/ttyUSB101",
|
|
"/dev/ttyUSB103",
|
|
}
|
|
|
|
got := compareVirtualPorts(
|
|
configured,
|
|
available,
|
|
)
|
|
|
|
if len(got.Missing) != 0 {
|
|
t.Errorf(
|
|
"Missing = %v, want empty",
|
|
got.Missing,
|
|
)
|
|
}
|
|
|
|
wantExtra := []string{
|
|
"/dev/ttyUSB103",
|
|
}
|
|
|
|
if !reflect.DeepEqual(got.Extra, wantExtra) {
|
|
t.Errorf(
|
|
"Extra = %v, want %v",
|
|
got.Extra,
|
|
wantExtra,
|
|
)
|
|
}
|
|
}
|
|
|
|
func TestCompareVirtualPortsMissingAndExtra(t *testing.T) {
|
|
configured := []string{
|
|
"/dev/ttyUSB100",
|
|
"/dev/ttyUSB101",
|
|
"/dev/ttyUSB102",
|
|
}
|
|
|
|
available := []string{
|
|
"/dev/ttyUSB100",
|
|
"/dev/ttyUSB101",
|
|
"/dev/ttyUSB103",
|
|
}
|
|
|
|
got := compareVirtualPorts(
|
|
configured,
|
|
available,
|
|
)
|
|
|
|
wantMissing := []string{
|
|
"/dev/ttyUSB102",
|
|
}
|
|
|
|
wantExtra := []string{
|
|
"/dev/ttyUSB103",
|
|
}
|
|
|
|
if !reflect.DeepEqual(got.Missing, wantMissing) {
|
|
t.Errorf(
|
|
"Missing = %v, want %v",
|
|
got.Missing,
|
|
wantMissing,
|
|
)
|
|
}
|
|
|
|
if !reflect.DeepEqual(got.Extra, wantExtra) {
|
|
t.Errorf(
|
|
"Extra = %v, want %v",
|
|
got.Extra,
|
|
wantExtra,
|
|
)
|
|
}
|
|
}
|
|
|
|
func TestCompareVirtualPortsEmpty(t *testing.T) {
|
|
got := compareVirtualPorts(
|
|
nil,
|
|
nil,
|
|
)
|
|
|
|
if len(got.Missing) != 0 {
|
|
t.Errorf(
|
|
"Missing = %v, want empty",
|
|
got.Missing,
|
|
)
|
|
}
|
|
|
|
if len(got.Extra) != 0 {
|
|
t.Errorf(
|
|
"Extra = %v, want empty",
|
|
got.Extra,
|
|
)
|
|
}
|
|
}
|
|
|
|
func TestCompareVirtualPortsConfiguredOnly(t *testing.T) {
|
|
configured := []string{
|
|
"/dev/ttyUSB100",
|
|
"/dev/ttyUSB101",
|
|
}
|
|
|
|
got := compareVirtualPorts(
|
|
configured,
|
|
nil,
|
|
)
|
|
|
|
wantMissing := []string{
|
|
"/dev/ttyUSB100",
|
|
"/dev/ttyUSB101",
|
|
}
|
|
|
|
if !reflect.DeepEqual(got.Missing, wantMissing) {
|
|
t.Errorf(
|
|
"Missing = %v, want %v",
|
|
got.Missing,
|
|
wantMissing,
|
|
)
|
|
}
|
|
|
|
if len(got.Extra) != 0 {
|
|
t.Errorf(
|
|
"Extra = %v, want empty",
|
|
got.Extra,
|
|
)
|
|
}
|
|
}
|
|
|
|
func TestCompareVirtualPortsAvailableOnly(t *testing.T) {
|
|
available := []string{
|
|
"/dev/ttyUSB100",
|
|
"/dev/ttyUSB101",
|
|
}
|
|
|
|
got := compareVirtualPorts(
|
|
nil,
|
|
available,
|
|
)
|
|
|
|
if len(got.Missing) != 0 {
|
|
t.Errorf(
|
|
"Missing = %v, want empty",
|
|
got.Missing,
|
|
)
|
|
}
|
|
|
|
wantExtra := []string{
|
|
"/dev/ttyUSB100",
|
|
"/dev/ttyUSB101",
|
|
}
|
|
|
|
if !reflect.DeepEqual(got.Extra, wantExtra) {
|
|
t.Errorf(
|
|
"Extra = %v, want %v",
|
|
got.Extra,
|
|
wantExtra,
|
|
)
|
|
}
|
|
}
|
|
|
|
func TestCompareVirtualPortsIgnoresDuplicates(t *testing.T) {
|
|
configured := []string{
|
|
"/dev/ttyUSB100",
|
|
"/dev/ttyUSB100",
|
|
}
|
|
|
|
available := []string{
|
|
"/dev/ttyUSB100",
|
|
"/dev/ttyUSB100",
|
|
}
|
|
|
|
got := compareVirtualPorts(
|
|
configured,
|
|
available,
|
|
)
|
|
|
|
if len(got.Missing) != 0 {
|
|
t.Errorf(
|
|
"Missing = %v, want empty",
|
|
got.Missing,
|
|
)
|
|
}
|
|
|
|
if len(got.Extra) != 0 {
|
|
t.Errorf(
|
|
"Extra = %v, want empty",
|
|
got.Extra,
|
|
)
|
|
}
|
|
}
|