# $Id: root 2413 2010-09-11 17:43:04Z bird $ -*-perl-*- ## @file # $(root path...) # # # Copyright (c) 2008-2010 knut st. osmundsen # # This file is part of kBuild. # # kBuild is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # kBuild is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with kBuild. If not, see # # $description = "Tests the $(path ) function"; $details = "Testing edges and some simple stuff."; if ($is_kmk) { # TEST #0 - check that the feature is present. # -------------------------------------------- run_make_test(' ifneq ($(root /a),/) $(error sub-test 0 failed) endif .PHONY: all all: ; @: ', '', ''); # TEST #1 - the real test. # ------------------------ run_make_test(' ifneq ($(root /asdf/asdf/adsf),/) $(error sub-test 0 failed:$(root /asdf/asdf/adsf)) endif ifneq ($(root asdf/asdf/adsf),) $(error sub-test 1 failed) endif ifneq ($(root asdf/asdf/adsf/),) $(error sub-test 2 failed) endif ifneq ($(root asdf/asdf/adsf/),) $(error sub-test 3 failed) endif ifneq ($(root a),) $(error sub-test 4 failed) endif ifneq ($(root ),) $(error sub-test 5 failed) endif ifneq ($(root //a),//) $(error sub-test 6 failed) endif ifneq ($(root /a),/) $(error sub-test 7 failed) endif ifneq ($(root ///a),///) $(error sub-test 8 failed) endif ifneq ($(root /a /b /c d /e),/ / / /) $(error sub-test 9 failed) endif .PHONY: all all: ; @: ', '', ''); # TEST #2 - DOS PATH stuff. # ------------------------ if ($port_type eq 'W32' || $port_type eq 'OS/2' || $port_type eq 'DOS') { run_make_test(' ifneq ($(root D:),D:) $(error sub-test 0 failed) endif ifneq ($(root D:/),D:/) $(error sub-test 1 failed) endif ifneq ($(root D:\\),D:\\) $(error sub-test 2 failed) endif ifneq ($(root D:\\\\),D:\\\\) $(error sub-test 3 failed) endif ifneq ($(root D:\\\\a),D:\\\\) $(error sub-test 4 failed) endif ifneq ($(root D:\\/a),D:\\/) $(error sub-test 5 failed) endif ifneq ($(root a:\\\\//asdf/asdf\\asdf),a:\\\\//) $(error sub-test 6 failed) endif ifneq ($(root z://\\\\asdf/asdf\\asdf),z://\\\\) $(error sub-test 7 failed) endif .PHONY: all all: ; @: ', '', ''); } # TEST #3 - UNC PATH stuff. # ------------------------ if ($port_type eq 'W32' || $port_type eq 'OS/2') { run_make_test(' ifneq ($(root //./),//./) $(error sub-test 0 failed) endif ifneq ($(root \\\\.\\),\\\\.\\) $(error sub-test 1 failed) endif ifneq ($(root \\\\\\.\\),\\\\\\) $(error sub-test 2 failed) endif ifneq ($(root ///.\\),///) $(error sub-test 3 failed) endif ifneq ($(root /\\.\\),/\\.\\) $(error sub-test 4 failed) endif ifneq ($(root \\/.\\),\\/.\\) $(error sub-test 5 failed) endif ifneq ($(root //srv/),//srv/) $(error sub-test 6 failed) endif ifneq ($(root //srv),) $(error sub-test 7 failed) endif ifneq ($(root //srv/share),//srv/share) $(error sub-test 8 failed) endif ifneq ($(root //srv/share/),//srv/share/) $(error sub-test 9 failed) endif ifneq ($(root //srv/share/asdf),//srv/share/) $(error sub-test 10 failed) endif .PHONY: all all: ; @: ', '', ''); } } # Indicate that we're done. 1;