[Bug 223564] Using a test script with filename "null" prevent "make install"

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Nov 9 13:53:58 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=223564

            Bug ID: 223564
           Summary: Using a test script with filename "null" prevent "make
                    install"
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: tests
          Assignee: freebsd-testing at freebsd.org
          Reporter: olivier at freebsd.org

I'm writing tests and one file (script shell) has the name "null" and this
prevent makefile to run:

How to reproduce the bug:

===================================
1) First, create a dummy test service
===================================

mkdir -p /usr/src/tests/bug/testing
cat > /usr/src/tests/bug/Makefile <<EOF
TESTSDIR=\${TESTSBASE}/bug
TESTS_SUBDIRS+=testing
.include <bsd.test.mk>
EOF

cat > /usr/src/tests/bug/testing/Makefile <<EOF
PACKAGE=tests
TESTSDIR=\${TESTSBASE}/bug/testing
ATF_TESTS_SH+= null
.include <bsd.test.mk>
EOF

cat > /usr/src/tests/bug/testing/null.sh <<EOF
# empty
atf_test_case "dummy" "cleanup"
dummy_head() {
atf_set descr 'dummy test'
}
dummy_body() {
atf_check -s exit:0 true 
}
EOF

==============================================
2) build and (try) install it
============================================

mkdir -p /usr/tests/bug/testing
cd /usr/src/tests/bug
make & make install
root at lame4:/usr/src/tests/bug # make install
install  -o root  -g wheel -m 444  Kyuafile  /usr/tests/bug/Kyuafile
===> testing (install)
make[1]: "/usr/obj/usr/src/amd64.amd64/tests/bug/testing/null" line 3: Need an
operator
make[1]: "/usr/obj/usr/src/amd64.amd64/tests/bug/testing/null" line 4: Need an
operator
make[1]: "/usr/obj/usr/src/amd64.amd64/tests/bug/testing/null" line 5: Need an
operator
make[1]: "/usr/obj/usr/src/amd64.amd64/tests/bug/testing/null" line 6: Need an
operator
make[1]: "/usr/obj/usr/src/amd64.amd64/tests/bug/testing/null" line 7: Need an
operator
make[1]: "/usr/obj/usr/src/amd64.amd64/tests/bug/testing/null" line 9: Need an
operator
make[1]: Fatal errors encountered -- cannot continue
make[1]: stopped in /usr/src/tests/bug/testing
*** Error code 1

Stop.
make: stopped in /usr/src/tests/bug

=> The makefile try to interpret this file


===========================================
3) Fixing, by renaming filename "null" to "empty"
=============================================

rm -rf /usr/obj/usr/src/amd64.amd64/tests/bug/
mv /usr/src/tests/bug/testing/null.sh /usr/src/tests/bug/testing/empty.sh
sed -i "" -e "s/null/empty/" /usr/src/tests/bug/testing/Makefile

make & make install
install  -o root  -g wheel -m 444  Kyuafile  /usr/tests/bug/Kyuafile
===> testing (install)
install  -o root  -g wheel -m 555  empty  /usr/tests/bug/testing/empty
install  -o root  -g wheel -m 444  Kyuafile  /usr/tests/bug/testing/Kyuafile

=> No more bug

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-testing mailing list