Introduce and Package PVE::Path & PVE::Filesystem - v2 ======================================================
Notable Changes Since v1 ------------------------ Incorporate Thomas's feedback [1] as much as possible. I was probably too eager to push this out yesterday and did notice many spots where the amount of test cases / tests being performed can be reduced significantly. The original commit that added all the tests to begin with is also split into multiple smaller commits to hopefully make reviewing this easier. The total amount of tests performed has therefore gone down from 1050 to 475 if I counted correctly (yikes). The only things that are still tested more elaborately are the file name manipulation and path comparison functions. There is some potential to slim those down as well, but I wanted to get a v2 out before Christmas for some additional feedback. Additionally, there was one slight discrepancy I noticed between how I documented path_parent and it's actual behaviour -- the behaviour was adapted accordingly. The behaviour of the boolean functions path_is_absolute and path_is_relative is also improved. See patch 01 for all details. Closing Remarks --------------- As always, any feedback is welcome -- if possible, it would be nice if somebody could give these two modules a spin and tell me how they feel. If there's anything that is or feels unexpected, surprising, inconsistent, etc. please let me know! References ---------- [1]: https://lore.proxmox.com/pve-devel/4990a4b4-5027-4db2-9909-d36af8a54...@proxmox.com/ Older Versions -------------- v1: https://lore.proxmox.com/pve-devel/20241219183143.526267-1-m.carr...@proxmox.com/ Summary of Changes ------------------ Max Carrara (12): introduce PVE::Path test: add directory for tests of PVE::Path module test: add tests for path_is_absolute and path_is_relative of PVE::Path test: add tests for path_components of PVE::Path test: add tests for path_join of PVE::Path test: add tests for path_push of PVE::Path test: add tests for path_parent of PVE::Path test: add tests for path_starts_with, path_ends_with, path_equals test: add test for file path operation functions of PVE::Path test: add tests for path_normalize of PVE::Path introduce PVE::Filesystem debian: introduce package libproxmox-fs-path-utils-perl debian/control | 6 + debian/libproxmox-fs-path-utils-perl.install | 2 + debian/libpve-common-perl.install | 29 + src/Makefile | 2 + src/PVE/Filesystem.pm | 78 ++ src/PVE/Path.pm | 987 ++++++++++++++ test/Makefile | 5 +- test/Path/Makefile | 24 + test/Path/path_comparison_tests.pl | 851 ++++++++++++ test/Path/path_components_tests.pl | 159 +++ test/Path/path_file_ops_tests.pl | 1220 ++++++++++++++++++ test/Path/path_is_absolute_relative_tests.pl | 122 ++ test/Path/path_join_tests.pl | 310 +++++ test/Path/path_normalize_tests.pl | 176 +++ test/Path/path_parent_tests.pl | 153 +++ test/Path/path_push_tests.pl | 159 +++ 16 files changed, 4282 insertions(+), 1 deletion(-) create mode 100644 debian/libproxmox-fs-path-utils-perl.install create mode 100644 debian/libpve-common-perl.install create mode 100644 src/PVE/Filesystem.pm create mode 100644 src/PVE/Path.pm create mode 100644 test/Path/Makefile create mode 100755 test/Path/path_comparison_tests.pl create mode 100755 test/Path/path_components_tests.pl create mode 100755 test/Path/path_file_ops_tests.pl create mode 100755 test/Path/path_is_absolute_relative_tests.pl create mode 100755 test/Path/path_join_tests.pl create mode 100755 test/Path/path_normalize_tests.pl create mode 100755 test/Path/path_parent_tests.pl create mode 100755 test/Path/path_push_tests.pl -- 2.39.5 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel