/* * \brief Tests for the 'Genode::Path' class * \author Christian Prochaska * \date 2024-02-08 */ /* * Copyright (C) 2024 Genode Labs GmbH * * This file is part of the Genode OS framework, which is distributed * under the terms of the GNU Affero General Public License version 3. */ #include #include #include using namespace Genode; void Component::construct(Env &) { log("--- 'Genode::Path' test ---"); log(""); log("testing removal of superfluous slashes"); log(""); log("'//dir1///' -> '", Path<16>("//dir1///"), "'"); log(""); log("testing removal of superfluous dot-slashes"); log(""); log("'/./dir1/././' -> '", Path<16>("/./dir1/././"), "'"); log("'./dir1/././' -> '", Path<16>("dir1/././", "./"), "'"); log(""); log("testing removal of double dot dirs"); log(""); log("'/..' -> '", Path<16>("/.."), "'"); log("'/dir1/..' -> '", Path<16>("/dir1/.."), "'"); log("'/dir1/../..' -> '", Path<16>("/dir1/../.."), "'"); log("'/dir1/dir2/..' -> '", Path<16>("/dir1/dir2/.."), "'"); log("'/dir1/../dir2' -> '", Path<16>("/dir1/../dir2"), "'"); log("'/../dir1' -> '", Path<16>("/../dir1"), "'"); log("'/../../dir1' -> '", Path<16>("/../../dir1"), "'"); log("'/../dir1/..' -> '", Path<16>("/../dir1/.."), "'"); log("'..' -> '", Path<16>("", ".."), "'"); log("'dir1/..' -> '", Path<16>("..", "dir1"), "'"); log("'dir1/../..' -> '", Path<16>("../..", "dir1"), "'"); log("'dir1/dir2/..' -> '", Path<16>("dir2/..", "dir1"), "'"); log("'dir1/../dir2' -> '", Path<16>("../dir2", "dir1"), "'"); log("'../dir1' -> '", Path<16>("dir1", ".."), "'"); log("'../../dir1' -> '", Path<16>("../dir1", ".."), "'"); log("'../dir1/..' -> '", Path<16>("dir1/..", ".."), "'"); log(""); log("testing removal of trailing dot"); log(""); log("'/dir1/.' -> '", Path<16>("/dir1/."), "'"); log(""); log("--- 'Genode::Path' test finished ---"); }