[pve-devel] [PATCH v2 pve-common 00/12] Introduce and Package PVE::Path & PVE::Filesystem

Max Carrara m.carrara at proxmox.com
Fri Dec 20 19:51:55 CET 2024


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-d36af8a54a07@proxmox.com/

Older Versions
--------------

v1: https://lore.proxmox.com/pve-devel/20241219183143.526267-1-m.carrara@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





More information about the pve-devel mailing list