head 1.1; branch 1.1.1; access; symbols netbsd-11-0-RC4:1.1.1.1 netbsd-11-0-RC3:1.1.1.1 netbsd-11-0-RC2:1.1.1.1 netbsd-11-0-RC1:1.1.1.1 perseant-exfatfs-base-20250801:1.1.1.1 netbsd-11:1.1.1.1.0.30 netbsd-11-base:1.1.1.1 netbsd-10-1-RELEASE:1.1.1.1 perseant-exfatfs-base-20240630:1.1.1.1 perseant-exfatfs:1.1.1.1.0.28 perseant-exfatfs-base:1.1.1.1 netbsd-8-3-RELEASE:1.1.1.1 netbsd-9-4-RELEASE:1.1.1.1 netbsd-10-0-RELEASE:1.1.1.1 netbsd-10-0-RC6:1.1.1.1 netbsd-10-0-RC5:1.1.1.1 netbsd-10-0-RC4:1.1.1.1 netbsd-10-0-RC3:1.1.1.1 netbsd-10-0-RC2:1.1.1.1 netbsd-10-0-RC1:1.1.1.1 netbsd-10:1.1.1.1.0.26 netbsd-10-base:1.1.1.1 netbsd-9-3-RELEASE:1.1.1.1 cjep_sun2x-base1:1.1.1.1 cjep_sun2x:1.1.1.1.0.24 cjep_sun2x-base:1.1.1.1 cjep_staticlib_x-base1:1.1.1.1 netbsd-9-2-RELEASE:1.1.1.1 cjep_staticlib_x:1.1.1.1.0.22 cjep_staticlib_x-base:1.1.1.1 netbsd-9-1-RELEASE:1.1.1.1 phil-wifi-20200421:1.1.1.1 phil-wifi-20200411:1.1.1.1 is-mlppp:1.1.1.1.0.20 is-mlppp-base:1.1.1.1 phil-wifi-20200406:1.1.1.1 netbsd-8-2-RELEASE:1.1.1.1 netbsd-9-0-RELEASE:1.1.1.1 netbsd-9-0-RC2:1.1.1.1 netbsd-9-0-RC1:1.1.1.1 phil-wifi-20191119:1.1.1.1 netbsd-9:1.1.1.1.0.18 netbsd-9-base:1.1.1.1 phil-wifi-20190609:1.1.1.1 netbsd-8-1-RELEASE:1.1.1.1 netbsd-8-1-RC1:1.1.1.1 pgoyette-compat-merge-20190127:1.1.1.1 pgoyette-compat-20190127:1.1.1.1 pgoyette-compat-20190118:1.1.1.1 pgoyette-compat-1226:1.1.1.1 pgoyette-compat-1126:1.1.1.1 pgoyette-compat-1020:1.1.1.1 pgoyette-compat-0930:1.1.1.1 pgoyette-compat-0906:1.1.1.1 pgoyette-compat-0728:1.1.1.1 netbsd-8-0-RELEASE:1.1.1.1 phil-wifi:1.1.1.1.0.16 phil-wifi-base:1.1.1.1 pgoyette-compat-0625:1.1.1.1 netbsd-8-0-RC2:1.1.1.1 pgoyette-compat-0521:1.1.1.1 pgoyette-compat-0502:1.1.1.1 pgoyette-compat-0422:1.1.1.1 netbsd-8-0-RC1:1.1.1.1 pgoyette-compat-0415:1.1.1.1 pgoyette-compat-0407:1.1.1.1 pgoyette-compat-0330:1.1.1.1 pgoyette-compat-0322:1.1.1.1 pgoyette-compat-0315:1.1.1.1 pgoyette-compat:1.1.1.1.0.14 pgoyette-compat-base:1.1.1.1 matt-nb8-mediatek:1.1.1.1.0.12 matt-nb8-mediatek-base:1.1.1.1 perseant-stdc-iso10646:1.1.1.1.0.10 perseant-stdc-iso10646-base:1.1.1.1 netbsd-8:1.1.1.1.0.8 netbsd-8-base:1.1.1.1 prg-localcount2-base3:1.1.1.1 prg-localcount2-base2:1.1.1.1 prg-localcount2-base1:1.1.1.1 prg-localcount2:1.1.1.1.0.6 prg-localcount2-base:1.1.1.1 pgoyette-localcount-20170426:1.1.1.1 bouyer-socketcan-base1:1.1.1.1 pgoyette-localcount-20170320:1.1.1.1 bouyer-socketcan:1.1.1.1.0.4 bouyer-socketcan-base:1.1.1.1 pgoyette-localcount-20170107:1.1.1.1 pgoyette-localcount-20161104:1.1.1.1 localcount-20160914:1.1.1.1 pgoyette-localcount-20160806:1.1.1.1 pgoyette-localcount-20160726:1.1.1.1 pgoyette-localcount:1.1.1.1.0.2 pgoyette-localcount-base:1.1.1.1 make-3-81:1.1.1.1 FSF:1.1.1; locks; strict; comment @# @; 1.1 date 2014.08.18.06.47.58; author christos; state Exp; branches 1.1.1.1; next ; commitid cY52wXUNMqbdjOMx; 1.1.1.1 date 2014.08.18.06.47.58; author christos; state Exp; branches; next ; commitid cY52wXUNMqbdjOMx; desc @@ 1.1 log @Initial revision @ text @# -*-perl-*- $description = "Test the -L option."; $details = "Verify that symlink handling with and without -L works properly."; # Only run these tests if the system sypports symlinks # Apparently the Windows port of Perl reports that it does support symlinks # (in that the symlink() function doesn't fail) but it really doesn't, so # check for it explicitly. if ($port_type eq 'W32' || !( eval { symlink("",""); 1 })) { # This test is N/A -1; } else { # Set up a symlink sym -> dep # We'll make both dep and targ older than sym $pwd =~ m%/([^/]+)$%; $dirnm = $1; &utouch(-10, 'dep'); &utouch(-5, 'targ'); symlink("../$dirnm/dep", 'sym'); # Without -L, nothing should happen # With -L, it should update targ run_make_test('targ: sym ; @@echo make $@@ from $<', '', "#MAKE#: `targ' is up to date."); run_make_test(undef, '-L', "make targ from sym"); # Now update dep; in all cases targ should be out of date. &touch('dep'); run_make_test(undef, '', "make targ from sym"); run_make_test(undef, '-L', "make targ from sym"); # Now update targ; in all cases targ should be up to date. &touch('targ'); run_make_test(undef, '', "#MAKE#: `targ' is up to date."); run_make_test(undef, '-L', "#MAKE#: `targ' is up to date."); # Add in a new link between sym and dep. Be sure it's newer than targ. sleep(1); rename('dep', 'dep1'); symlink('dep1', 'dep'); # Without -L, nothing should happen # With -L, it should update targ run_make_test(undef, '', "#MAKE#: `targ' is up to date."); run_make_test(undef, '-L', "make targ from sym"); rmfiles('targ', 'dep', 'sym', 'dep1'); # Check handling when symlinks point to non-existent files. Without -L we # should get an error: with -L we should use the timestamp of the symlink. symlink("../$dirname/dep", 'sym'); run_make_test('targ: sym ; @@echo make $@@ from $<', '', "#MAKE#: *** No rule to make target `sym', needed by `targ'. Stop.", 512); run_make_test('targ: sym ; @@echo make $@@ from $<', '-L', 'make targ from sym'); rmfiles('targ', 'sym'); 1; } @ 1.1.1.1 log @import latest gpl2 make @ text @@