From 80923745c86ae985e26321ce9a664ebf6b8851ef Mon Sep 17 00:00:00 2001 From: Arthur Silva Sens Date: Thu, 29 Oct 2026 09:00:48 -0300 Subject: [PATCH] test: use checked-in fixtures instead of writing static inputs Signed-off-by: Arthur Silva Sens --- AGENTS.md | 2 + collector/diskstats_linux_test.go | 27 +- collector/fixtures/sys.ttar | 702 ++++++++++++------ .../textfile/duplicate_metrics/a.prom | 1 + .../textfile/duplicate_metrics/b.prom | 1 + .../fixtures/textfile/utf8_names/test.prom | 3 + collector/hwmon_linux_test.go | 124 +--- collector/textfile_test.go | 12 +- node_exporter_test.go | 16 +- 9 files changed, 476 insertions(+), 412 deletions(-) create mode 100644 collector/fixtures/textfile/duplicate_metrics/a.prom create mode 100644 collector/fixtures/textfile/duplicate_metrics/b.prom create mode 100644 collector/fixtures/textfile/utf8_names/test.prom diff --git a/AGENTS.md b/AGENTS.md index 144e10e532..3c3f28cac1 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -17,6 +17,8 @@ - Lint/format shortcuts: `make format`, `make lint`, `make lint-fix`, `make yamllint`, `make unused`. ## Fixtures And Generated Outputs +- Tests that only read filesystem data must use checked-in fixtures instead of creating static input files with `os.WriteFile` or similar APIs. Extend existing fixture-driven test tables where possible. +- Parser tests accepting `io.Reader` should use in-memory readers. Reserve temporary filesystem setup for tests that require isolation or exercise filesystem changes; explain why checked-in fixtures are insufficient. - Do not edit unpacked `collector/fixtures/sys/` or `collector/fixtures/udev/` as source of truth; update `collector/fixtures/sys.ttar` and `collector/fixtures/udev.ttar` with `make update_fixtures`. - To refresh e2e metric golden files, run `make build tools` first, then `./end-to-end-test.sh -u`; it writes the appropriate `collector/fixtures/e2e-output*.txt`. - `end-to-end-test.sh` filters collector flags by OS/build context using `tools/tools match`, so an ignored flag in e2e may mean the collector is build-tag-gated for that platform rather than broken (see `Rules`). diff --git a/collector/diskstats_linux_test.go b/collector/diskstats_linux_test.go index f7891f27e4..d8190c0cf0 100644 --- a/collector/diskstats_linux_test.go +++ b/collector/diskstats_linux_test.go @@ -19,8 +19,6 @@ import ( "fmt" "io" "log/slog" - "os" - "path/filepath" "strings" "testing" @@ -363,30 +361,7 @@ node_disk_written_bytes_total{device="vda"} 1.0938236928e+11 // not exist (preserving backward compatibility with the previous // SysBlockDeviceQueueStats zero-value behaviour, issue #3282). func TestRotationalLabel(t *testing.T) { - tempProc := t.TempDir() - tempSys := t.TempDir() - - // Create a valid rotational=1 file (HDD). - err := os.MkdirAll(filepath.Join(tempSys, "block/sda/queue"), 0o755) - if err != nil { - t.Fatal(err) - } - err = os.WriteFile(filepath.Join(tempSys, "block/sda/queue/rotational"), []byte("1\n"), 0o644) - if err != nil { - t.Fatal(err) - } - - // Create a rotational=0 file (SSD). - err = os.MkdirAll(filepath.Join(tempSys, "block/sdb/queue"), 0o755) - if err != nil { - t.Fatal(err) - } - err = os.WriteFile(filepath.Join(tempSys, "block/sdb/queue/rotational"), []byte("0\n"), 0o644) - if err != nil { - t.Fatal(err) - } - - fs, err := blockdevice.NewFS(tempProc, tempSys) + fs, err := blockdevice.NewFS("fixtures/proc", "fixtures/sys/diskstats") if err != nil { t.Fatal(err) } diff --git a/collector/fixtures/sys.ttar b/collector/fixtures/sys.ttar index aa08e991c6..5c4388faec 100644 --- a/collector/fixtures/sys.ttar +++ b/collector/fixtures/sys.ttar @@ -50,6 +50,108 @@ Mode: 755 Path: sys/block/dm-4/slaves/dm-0 SymlinkTo: ../dm-0 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/block/dm-5 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/block/dm-5/dm +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/block/dm-5/dm/name +Lines: 1 +mpathAEOF +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/block/dm-5/dm/suspended +Lines: 1 +0EOF +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/block/dm-5/dm/uuid +Lines: 1 +mpath-3600508b1001c1234567890abcdef1234EOF +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/block/dm-5/size +Lines: 1 +104857600EOF +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/block/dm-5/slaves +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/block/dm-5/slaves/sdi +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/block/dm-5/slaves/sdj +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/block/dm-5/slaves/sdk +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/block/dm-5/slaves/sdl +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/block/dm-6 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/block/dm-6/dm +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/block/dm-6/dm/name +Lines: 1 +mpathBEOF +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/block/dm-6/dm/suspended +Lines: 1 +0EOF +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/block/dm-6/dm/uuid +Lines: 1 +mpath-3600508b1001cabcdef4567890123456EOF +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/block/dm-6/size +Lines: 1 +209715200EOF +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/block/dm-6/slaves +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/block/dm-6/slaves/sdm +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/block/dm-6/slaves/sdn +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/block/dm-7 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/block/dm-7/dm +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/block/dm-7/dm/name +Lines: 1 +vg0-rootEOF +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/block/dm-7/dm/suspended +Lines: 1 +0EOF +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/block/dm-7/dm/uuid +Lines: 1 +LVM-abcdef1234567890abcdef1234567890EOF +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/block/dm-7/size +Lines: 1 +41943040EOF +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Directory: sys/block/md0 Mode: 755 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -871,108 +973,6 @@ Lines: 1 none Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/block/dm-5 -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/block/dm-5/dm -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/block/dm-5/dm/name -Lines: 1 -mpathAEOF -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/block/dm-5/dm/suspended -Lines: 1 -0EOF -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/block/dm-5/dm/uuid -Lines: 1 -mpath-3600508b1001c1234567890abcdef1234EOF -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/block/dm-5/size -Lines: 1 -104857600EOF -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/block/dm-5/slaves -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/block/dm-5/slaves/sdi -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/block/dm-5/slaves/sdj -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/block/dm-5/slaves/sdk -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/block/dm-5/slaves/sdl -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/block/dm-6 -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/block/dm-6/dm -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/block/dm-6/dm/name -Lines: 1 -mpathBEOF -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/block/dm-6/dm/suspended -Lines: 1 -0EOF -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/block/dm-6/dm/uuid -Lines: 1 -mpath-3600508b1001cabcdef4567890123456EOF -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/block/dm-6/size -Lines: 1 -209715200EOF -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/block/dm-6/slaves -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/block/dm-6/slaves/sdm -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/block/dm-6/slaves/sdn -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/block/dm-7 -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/block/dm-7/dm -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/block/dm-7/dm/name -Lines: 1 -vg0-rootEOF -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/block/dm-7/dm/suspended -Lines: 1 -0EOF -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/block/dm-7/dm/uuid -Lines: 1 -LVM-abcdef1234567890abcdef1234567890EOF -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/block/dm-7/size -Lines: 1 -41943040EOF -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Directory: sys/block/sdi Mode: 755 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1501,6 +1501,9 @@ SymlinkTo: ../../devices/platform/coretemp.0/hwmon/hwmon0 Path: sys/class/hwmon/hwmon1 SymlinkTo: ../../devices/platform/coretemp.1/hwmon/hwmon1 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/class/hwmon/hwmon10 +SymlinkTo: ../../devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon10 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Path: sys/class/hwmon/hwmon2 SymlinkTo: ../../devices/platform/applesmc.768/hwmon/hwmon2 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1595,9 +1598,6 @@ SymlinkTo: ../../devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon8 Path: sys/class/hwmon/hwmon9 SymlinkTo: ../../devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon9 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/class/hwmon/hwmon10 -SymlinkTo: ../../devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon10 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Directory: sys/class/infiniband Mode: 755 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2518,16 +2518,6 @@ Lines: 1 Samsung SSD 970 PRO 512GB Mode: 444 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/class/nvme/nvme0/serial -Lines: 1 -S680HF8N190894I -Mode: 444 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/class/nvme/nvme0/state -Lines: 1 -live -Mode: 444 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Directory: sys/class/nvme/nvme0/nvme0n1 Mode: 755 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2536,11 +2526,6 @@ Lines: 1 optimized Mode: 444 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/class/nvme/nvme0/nvme0n1/size -Lines: 1 -3906250000 -Mode: 444 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Path: sys/class/nvme/nvme0/nvme0n1/nuse Lines: 1 488281250 @@ -2554,6 +2539,21 @@ Lines: 1 4096 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/class/nvme/nvme0/nvme0n1/size +Lines: 1 +3906250000 +Mode: 444 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/class/nvme/nvme0/serial +Lines: 1 +S680HF8N190894I +Mode: 444 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/class/nvme/nvme0/state +Lines: 1 +live +Mode: 444 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Directory: sys/class/nvme-subsystem Mode: 755 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -8640,77 +8640,14 @@ Lines: 1 2 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/devices/platform/soc -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/devices/platform/soc/18000000.wifi -Mode: 755 +Directory: sys/devices/platform/bogus.0 +Mode: 775 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/devices/platform/soc/18000000.wifi/ieee80211 -Mode: 755 +Directory: sys/devices/platform/bogus.0/hwmon +Mode: 775 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0 -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon8 -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon8/device -SymlinkTo: ../.. -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon8/name -Lines: 1 -mt7996_phy0_0 -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon8/temp1_input -Lines: 1 -55000 -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon9 -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon9/device -SymlinkTo: ../.. -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon9/name -Lines: 1 -mt7996_phy0_1 -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon9/temp1_input -Lines: 1 -56000 -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon10 -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon10/device -SymlinkTo: ../.. -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon10/name -Lines: 1 -mt7996_phy0_2 -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon10/temp1_input -Lines: 1 -57000 -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/devices/platform/bogus.0 -Mode: 775 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/devices/platform/bogus.0/hwmon -Mode: 775 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/devices/platform/bogus.0/hwmon/hwmon5 -Mode: 775 +Directory: sys/devices/platform/bogus.0/hwmon/hwmon5 +Mode: 775 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Path: sys/devices/platform/bogus.0/hwmon/hwmon5/bogus1_crit Lines: 1 @@ -9280,6 +9217,69 @@ Lines: 1 0 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/devices/platform/soc +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/devices/platform/soc/18000000.wifi +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/devices/platform/soc/18000000.wifi/ieee80211 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon10 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon10/device +SymlinkTo: ../.. +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon10/name +Lines: 1 +mt7996_phy0_2 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon10/temp1_input +Lines: 1 +57000 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon8 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon8/device +SymlinkTo: ../.. +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon8/name +Lines: 1 +mt7996_phy0_0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon8/temp1_input +Lines: 1 +55000 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon9 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon9/device +SymlinkTo: ../.. +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon9/name +Lines: 1 +mt7996_phy0_1 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/devices/platform/soc/18000000.wifi/ieee80211/phy0/hwmon/hwmon9/temp1_input +Lines: 1 +56000 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Directory: sys/devices/system Mode: 755 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -9675,25 +9675,24 @@ Mode: 644 Directory: sys/devices/system/edac/mc/mc0/csrow0 Mode: 755 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow0/ch0_ce_count +Path: sys/devices/system/edac/mc/mc0/csrow0/ce_count Lines: 1 -0 +3 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/devices/system/edac/mc/mc0/csrow1 -Mode: 755 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow1/ch0_ce_count +Path: sys/devices/system/edac/mc/mc0/csrow0/ch0_ce_count Lines: 1 0 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Directory: sys/devices/system/edac/mc/mc0/csrow2 -Mode: 755 +Path: sys/devices/system/edac/mc/mc0/csrow0/ch0_dimm_label +Lines: 1 +mc0csrow0channel0 +Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow2/ch0_ce_count +Path: sys/devices/system/edac/mc/mc0/csrow0/ch0_ue_count Lines: 1 -0 +2 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Path: sys/devices/system/edac/mc/mc0/csrow0/ch1_ce_count @@ -9701,104 +9700,105 @@ Lines: 1 0 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow1/ch1_ce_count +Path: sys/devices/system/edac/mc/mc0/csrow0/ch1_dimm_label Lines: 1 -0 +mc0csrow0channel1 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow2/ch1_ce_count +Path: sys/devices/system/edac/mc/mc0/csrow0/ch1_ue_count Lines: 1 -0 +2 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow0/ce_count +Path: sys/devices/system/edac/mc/mc0/csrow0/ue_count Lines: 1 -3 +4 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow0/ch0_ue_count +Directory: sys/devices/system/edac/mc/mc0/csrow1 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/devices/system/edac/mc/mc0/csrow1/ce_count Lines: 1 -2 +0 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow1/ch0_ue_count +Path: sys/devices/system/edac/mc/mc0/csrow1/ch0_ce_count Lines: 1 -2 +0 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow0/ch1_ue_count +Path: sys/devices/system/edac/mc/mc0/csrow1/ch0_dimm_label Lines: 1 -2 +mc0csrow1channel0 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow1/ch1_ue_count +Path: sys/devices/system/edac/mc/mc0/csrow1/ch0_ue_count Lines: 1 2 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow1/ce_count +Path: sys/devices/system/edac/mc/mc0/csrow1/ch1_ce_count Lines: 1 0 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow1/ue_count -Lines: 1 -4 -Mode: 644 -# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow2/ce_count +Path: sys/devices/system/edac/mc/mc0/csrow1/ch1_dimm_label Lines: 1 -0 +mc0csrow1channel1 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow2/ue_count +Path: sys/devices/system/edac/mc/mc0/csrow1/ch1_ue_count Lines: 1 -5 +2 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow0/ue_count +Path: sys/devices/system/edac/mc/mc0/csrow1/ue_count Lines: 1 4 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/ue_count +Directory: sys/devices/system/edac/mc/mc0/csrow2 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/devices/system/edac/mc/mc0/csrow2/ce_count Lines: 1 -5 +0 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/ue_noinfo_count +Path: sys/devices/system/edac/mc/mc0/csrow2/ch0_ce_count Lines: 1 -6 +0 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow0/ch0_dimm_label +Path: sys/devices/system/edac/mc/mc0/csrow2/ch0_dimm_label Lines: 1 -mc0csrow0channel0 +mc0csrow2channel0 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow0/ch1_dimm_label +Path: sys/devices/system/edac/mc/mc0/csrow2/ch1_ce_count Lines: 1 -mc0csrow0channel1 +0 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow1/ch0_dimm_label +Path: sys/devices/system/edac/mc/mc0/csrow2/ch1_dimm_label Lines: 1 -mc0csrow1channel0 +mc0csrow2channel1 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow1/ch1_dimm_label +Path: sys/devices/system/edac/mc/mc0/csrow2/ue_count Lines: 1 -mc0csrow1channel1 +5 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow2/ch0_dimm_label +Path: sys/devices/system/edac/mc/mc0/ue_count Lines: 1 -mc0csrow2channel0 +5 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Path: sys/devices/system/edac/mc/mc0/csrow2/ch1_dimm_label +Path: sys/devices/system/edac/mc/mc0/ue_noinfo_count Lines: 1 -mc0csrow2channel1 +6 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Directory: sys/devices/system/node @@ -10011,6 +10011,34 @@ Lines: 1 cpu-thermal Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/diskstats +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/diskstats/block +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/diskstats/block/sda +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/diskstats/block/sda/queue +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/diskstats/block/sda/queue/rotational +Lines: 1 +1 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/diskstats/block/sdb +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/diskstats/block/sdb/queue +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/diskstats/block/sdb/queue/rotational +Lines: 1 +0 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Directory: sys/fs Mode: 755 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -12057,6 +12085,202 @@ xpc 3571712 3568056 0 debug 0 Mode: 644 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/duplicate_chip_names +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/duplicate_chip_names/class +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/duplicate_chip_names/class/hwmon +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/duplicate_chip_names/class/hwmon/hwmon6 +SymlinkTo: ../../devices/platform/asus-nb-wmi/hwmon/hwmon6 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/duplicate_chip_names/class/hwmon/hwmon7 +SymlinkTo: ../../devices/platform/asus-nb-wmi/hwmon/hwmon7 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/duplicate_chip_names/devices +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/duplicate_chip_names/devices/platform +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/duplicate_chip_names/devices/platform/asus-nb-wmi +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/duplicate_chip_names/devices/platform/asus-nb-wmi/hwmon +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/duplicate_chip_names/devices/platform/asus-nb-wmi/hwmon/hwmon6 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/duplicate_chip_names/devices/platform/asus-nb-wmi/hwmon/hwmon6/device +SymlinkTo: ../.. +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/duplicate_chip_names/devices/platform/asus-nb-wmi/hwmon/hwmon6/name +Lines: 1 +asus +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/duplicate_chip_names/devices/platform/asus-nb-wmi/hwmon/hwmon6/pwm1 +Lines: 1 +128 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/duplicate_chip_names/devices/platform/asus-nb-wmi/hwmon/hwmon6/pwm1_enable +Lines: 1 +2 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/duplicate_chip_names/devices/platform/asus-nb-wmi/hwmon/hwmon7 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/duplicate_chip_names/devices/platform/asus-nb-wmi/hwmon/hwmon7/device +SymlinkTo: ../.. +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/duplicate_chip_names/devices/platform/asus-nb-wmi/hwmon/hwmon7/name +Lines: 1 +asus_wmi_sensors +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/duplicate_chip_names/devices/platform/asus-nb-wmi/hwmon/hwmon7/pwm1 +Lines: 1 +200 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/duplicate_chip_names/devices/platform/asus-nb-wmi/hwmon/hwmon7/pwm1_enable +Lines: 1 +2 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/same_name_file +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/same_name_file/class +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/same_name_file/class/hwmon +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/same_name_file/class/hwmon/hwmon3 +SymlinkTo: ../../devices/platform/asus-nb-wmi/hwmon/hwmon3 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/same_name_file/class/hwmon/hwmon4 +SymlinkTo: ../../devices/platform/asus-nb-wmi/hwmon/hwmon4 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/same_name_file/devices +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/same_name_file/devices/platform +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/same_name_file/devices/platform/asus-nb-wmi +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/same_name_file/devices/platform/asus-nb-wmi/hwmon +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/same_name_file/devices/platform/asus-nb-wmi/hwmon/hwmon3 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/same_name_file/devices/platform/asus-nb-wmi/hwmon/hwmon3/device +SymlinkTo: ../.. +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/same_name_file/devices/platform/asus-nb-wmi/hwmon/hwmon3/name +Lines: 1 +asus +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/same_name_file/devices/platform/asus-nb-wmi/hwmon/hwmon3/pwm1_enable +Lines: 1 +2 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/same_name_file/devices/platform/asus-nb-wmi/hwmon/hwmon4 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/same_name_file/devices/platform/asus-nb-wmi/hwmon/hwmon4/device +SymlinkTo: ../.. +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/same_name_file/devices/platform/asus-nb-wmi/hwmon/hwmon4/name +Lines: 1 +asus +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/same_name_file/devices/platform/asus-nb-wmi/hwmon/hwmon4/pwm1_enable +Lines: 1 +2 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/unique_chip_names +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/unique_chip_names/class +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/unique_chip_names/class/hwmon +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/unique_chip_names/class/hwmon/hwmon0 +SymlinkTo: ../../devices/platform/coretemp.0/hwmon/hwmon0 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/unique_chip_names/class/hwmon/hwmon1 +SymlinkTo: ../../devices/platform/coretemp.1/hwmon/hwmon1 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/unique_chip_names/devices +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/unique_chip_names/devices/platform +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/unique_chip_names/devices/platform/coretemp.0 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/unique_chip_names/devices/platform/coretemp.0/hwmon +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/unique_chip_names/devices/platform/coretemp.0/hwmon/hwmon0 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/unique_chip_names/devices/platform/coretemp.0/hwmon/hwmon0/device +SymlinkTo: ../.. +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/unique_chip_names/devices/platform/coretemp.0/hwmon/hwmon0/name +Lines: 1 +coretemp +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/unique_chip_names/devices/platform/coretemp.0/hwmon/hwmon0/temp1_input +Lines: 1 +42000 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/unique_chip_names/devices/platform/coretemp.1 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/unique_chip_names/devices/platform/coretemp.1/hwmon +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Directory: sys/hwmon/unique_chip_names/devices/platform/coretemp.1/hwmon/hwmon1 +Mode: 755 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/unique_chip_names/devices/platform/coretemp.1/hwmon/hwmon1/device +SymlinkTo: ../.. +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/unique_chip_names/devices/platform/coretemp.1/hwmon/hwmon1/name +Lines: 1 +coretemp +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +Path: sys/hwmon/unique_chip_names/devices/platform/coretemp.1/hwmon/hwmon1/temp1_input +Lines: 1 +43000 +Mode: 644 +# ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Directory: sys/kernel Mode: 755 # ttar - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/collector/fixtures/textfile/duplicate_metrics/a.prom b/collector/fixtures/textfile/duplicate_metrics/a.prom new file mode 100644 index 0000000000..43deca5531 --- /dev/null +++ b/collector/fixtures/textfile/duplicate_metrics/a.prom @@ -0,0 +1 @@ +dummy_metric 1 diff --git a/collector/fixtures/textfile/duplicate_metrics/b.prom b/collector/fixtures/textfile/duplicate_metrics/b.prom new file mode 100644 index 0000000000..43deca5531 --- /dev/null +++ b/collector/fixtures/textfile/duplicate_metrics/b.prom @@ -0,0 +1 @@ +dummy_metric 1 diff --git a/collector/fixtures/textfile/utf8_names/test.prom b/collector/fixtures/textfile/utf8_names/test.prom new file mode 100644 index 0000000000..905eca59b9 --- /dev/null +++ b/collector/fixtures/textfile/utf8_names/test.prom @@ -0,0 +1,3 @@ +# HELP "my.dotted.metric" A metric with UTF-8 compatible names. +# TYPE "my.dotted.metric" gauge +{"my.dotted.metric", "error.message"="Not Found"} 1 diff --git a/collector/hwmon_linux_test.go b/collector/hwmon_linux_test.go index 3206b0e09d..24db47e32a 100644 --- a/collector/hwmon_linux_test.go +++ b/collector/hwmon_linux_test.go @@ -18,76 +18,12 @@ package collector import ( "io" "log/slog" - "os" - "path/filepath" "slices" "testing" "github.com/prometheus/client_golang/prometheus" ) -// fakeHwmon describes a single hwmon node to materialize under a temporary -// /sys layout. The collector's hwmonName function reads the parent of the -// `device` symlink to derive a chip label, which is what produces the -// collision we need to test. -type fakeHwmon struct { - hwmonDir string // e.g. "hwmon3" - device string // parent device dir name, e.g. "asus-nb-wmi". Empty disables the device symlink. - name string // contents of the optional `name` file - files map[string]string // sensor file basename -> content -} - -// buildFakeSysfs writes a minimal /sys tree containing the supplied hwmon -// nodes and returns the path that should be passed as *sysPath. Each -// non-empty `device` shares a common /sys/devices/platform/ -// directory so two hwmon entries can collide on chip name. -func buildFakeSysfs(t *testing.T, hwmons []fakeHwmon) string { - t.Helper() - - sysRoot := t.TempDir() - classHwmon := filepath.Join(sysRoot, "class", "hwmon") - if err := os.MkdirAll(classHwmon, 0o755); err != nil { - t.Fatalf("mkdir class/hwmon: %v", err) - } - - for _, h := range hwmons { - var hwmonReal string - if h.device != "" { - hwmonReal = filepath.Join(sysRoot, "devices", "platform", h.device, "hwmon", h.hwmonDir) - } else { - hwmonReal = filepath.Join(sysRoot, "devices", "virtual", "hwmon", h.hwmonDir) - } - if err := os.MkdirAll(hwmonReal, 0o755); err != nil { - t.Fatalf("mkdir %s: %v", hwmonReal, err) - } - - if h.device != "" { - deviceTarget := filepath.Join(sysRoot, "devices", "platform", h.device) - if err := os.Symlink(deviceTarget, filepath.Join(hwmonReal, "device")); err != nil { - t.Fatalf("symlink device: %v", err) - } - } - - if h.name != "" { - if err := os.WriteFile(filepath.Join(hwmonReal, "name"), []byte(h.name+"\n"), 0o644); err != nil { - t.Fatalf("write name: %v", err) - } - } - - for fname, content := range h.files { - if err := os.WriteFile(filepath.Join(hwmonReal, fname), []byte(content+"\n"), 0o644); err != nil { - t.Fatalf("write %s: %v", fname, err) - } - } - - if err := os.Symlink(hwmonReal, filepath.Join(classHwmon, h.hwmonDir)); err != nil { - t.Fatalf("symlink class/hwmon: %v", err) - } - } - - return sysRoot -} - // gatherChipLabels runs the collector through a registry and returns the // observed `chip` label values across all metrics. It also surfaces any // gather error — which is the failure mode #3637 reported. @@ -138,31 +74,9 @@ func newTestHwmonCollector() *hwMonCollector { // that triggered #3637 on ASUS WMI laptops — must produce distinct chip // labels and not error during gather. func TestHwmonDuplicateChipNamesAreDisambiguated(t *testing.T) { - hwmons := []fakeHwmon{ - { - hwmonDir: "hwmon6", - device: "asus-nb-wmi", - name: "asus", - files: map[string]string{ - "pwm1": "128", - "pwm1_enable": "2", - }, - }, - { - hwmonDir: "hwmon7", - device: "asus-nb-wmi", - name: "asus_wmi_sensors", - files: map[string]string{ - "pwm1": "200", - "pwm1_enable": "2", - }, - }, - } - - sysRoot := buildFakeSysfs(t, hwmons) prev := *sysPath t.Cleanup(func() { *sysPath = prev }) - *sysPath = sysRoot + *sysPath = "fixtures/sys/hwmon/duplicate_chip_names" chips, err := gatherChipLabels(t, newTestHwmonCollector()) if err != nil { @@ -185,25 +99,9 @@ func TestHwmonDuplicateChipNamesAreDisambiguated(t *testing.T) { // When chip names are already unique, the collector must leave them alone // — no surprise suffixes for unaffected users. func TestHwmonUniqueChipNamesAreUnchanged(t *testing.T) { - hwmons := []fakeHwmon{ - { - hwmonDir: "hwmon0", - device: "coretemp.0", - name: "coretemp", - files: map[string]string{"temp1_input": "42000"}, - }, - { - hwmonDir: "hwmon1", - device: "coretemp.1", - name: "coretemp", - files: map[string]string{"temp1_input": "43000"}, - }, - } - - sysRoot := buildFakeSysfs(t, hwmons) prev := *sysPath t.Cleanup(func() { *sysPath = prev }) - *sysPath = sysRoot + *sysPath = "fixtures/sys/hwmon/unique_chip_names" chips, err := gatherChipLabels(t, newTestHwmonCollector()) if err != nil { @@ -221,25 +119,9 @@ func TestHwmonUniqueChipNamesAreUnchanged(t *testing.T) { // disambiguator collapses too. We must still emit unique chip labels by // falling back to the hwmonX basename. func TestHwmonDuplicateChipNamesWithSameNameFile(t *testing.T) { - hwmons := []fakeHwmon{ - { - hwmonDir: "hwmon3", - device: "asus-nb-wmi", - name: "asus", - files: map[string]string{"pwm1_enable": "2"}, - }, - { - hwmonDir: "hwmon4", - device: "asus-nb-wmi", - name: "asus", - files: map[string]string{"pwm1_enable": "2"}, - }, - } - - sysRoot := buildFakeSysfs(t, hwmons) prev := *sysPath t.Cleanup(func() { *sysPath = prev }) - *sysPath = sysRoot + *sysPath = "fixtures/sys/hwmon/same_name_file" chips, err := gatherChipLabels(t, newTestHwmonCollector()) if err != nil { diff --git a/collector/textfile_test.go b/collector/textfile_test.go index 222ffa8fee..5b9f701ccd 100644 --- a/collector/textfile_test.go +++ b/collector/textfile_test.go @@ -22,7 +22,6 @@ import ( "net/http" "net/http/httptest" "os" - "path/filepath" "testing" "github.com/alecthomas/kingpin/v2" @@ -159,17 +158,8 @@ func TestTextfileCollector(t *testing.T) { } func TestTextfileCollectorSupportsUTF8Names(t *testing.T) { - dir := t.TempDir() - const input = `# HELP "my.dotted.metric" A metric with UTF-8 compatible names. -# TYPE "my.dotted.metric" gauge -{"my.dotted.metric", "error.message"="Not Found"} 1 -` - if err := os.WriteFile(filepath.Join(dir, "test.prom"), []byte(input), 0o600); err != nil { - t.Fatal(err) - } - c := &textFileCollector{ - paths: []string{dir}, + paths: []string{"fixtures/textfile/utf8_names"}, logger: slog.New(slog.NewTextHandler(io.Discard, nil)), } registry := prometheus.NewRegistry() diff --git a/node_exporter_test.go b/node_exporter_test.go index 4938475e7b..f80d7fe06d 100644 --- a/node_exporter_test.go +++ b/node_exporter_test.go @@ -82,21 +82,7 @@ func TestHandlingOfDuplicatedMetrics(t *testing.T) { t.Skipf("node_exporter binary not available, try to run `make build` first: %s", err) } - dir, err := os.MkdirTemp("", "node-exporter") - if err != nil { - t.Fatal(err) - } - defer os.RemoveAll(dir) - - content := []byte("dummy_metric 1\n") - if err := os.WriteFile(filepath.Join(dir, "a.prom"), content, 0o600); err != nil { - t.Fatal(err) - } - if err := os.WriteFile(filepath.Join(dir, "b.prom"), content, 0o600); err != nil { - t.Fatal(err) - } - - exporter := exec.Command(binary, "--web.listen-address", address, "--collector.textfile.directory", dir) + exporter := exec.Command(binary, "--web.listen-address", address, "--collector.textfile.directory", "collector/fixtures/textfile/duplicate_metrics") test := func(_ int) error { return queryExporter(address) }