From owner-svn-src-all@FreeBSD.ORG Wed Aug 11 16:29:13 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0C63D106567A; Wed, 11 Aug 2010 16:29:13 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D4D418FC0A; Wed, 11 Aug 2010 16:29:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o7BGTClW008660; Wed, 11 Aug 2010 16:29:12 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o7BGTC0p008659; Wed, 11 Aug 2010 16:29:12 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201008111629.o7BGTC0p008659@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Wed, 11 Aug 2010 16:29:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r211177 - head/tools/regression/fstest/tests X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Aug 2010 16:29:13 -0000 Author: pjd Date: Wed Aug 11 16:29:12 2010 New Revision: 211177 URL: http://svn.freebsd.org/changeset/base/211177 Log: Instead of hardcoding {NAME_MAX} as 255 and {PATH_MAX} as 1024 obtain those from pathconf(2) and properly generate too long file names. This should fix ENAMETOOLONG checks on Linux. Modified: head/tools/regression/fstest/tests/misc.sh Modified: head/tools/regression/fstest/tests/misc.sh ============================================================================== --- head/tools/regression/fstest/tests/misc.sh Wed Aug 11 10:51:27 2010 (r211176) +++ head/tools/regression/fstest/tests/misc.sh Wed Aug 11 16:29:12 2010 (r211177) @@ -2,13 +2,6 @@ ntest=1 -name253="_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_12" -name255="${name253}34" -name256="${name255}5" -path1021="${name255}/${name255}/${name255}/${name253}" -path1023="${path1021}/x" -path1024="${path1023}x" - case "${dir}" in /*) maindir="${dir}/../.." @@ -99,6 +92,52 @@ namegen() echo "fstest_`dd if=/dev/urandom bs=1k count=1 2>/dev/null | openssl md5`" } +namegen_len() +{ + len="${1}" + + name="" + while :; do + namepart="`dd if=/dev/urandom bs=64 count=1 2>/dev/null | openssl md5`" + name="${name}${namepart}" + curlen=`printf "%s" "${name}" | wc -c` + [ ${curlen} -lt ${len} ] || break + done + name=`echo "${name}" | cut -b -${len}` + printf "%s" "${name}" +} + +# POSIX: +# {NAME_MAX} +# Maximum number of bytes in a filename (not including terminating null). +namegen_max() +{ + name_max=`${fstest} pathconf . _PC_NAME_MAX` + namegen_len ${name_max} +} + +# POSIX: +# {PATH_MAX} +# Maximum number of bytes in a pathname, including the terminating null character. +dirgen_max() +{ + name_max=`${fstest} pathconf . _PC_NAME_MAX` + complen=$((name_max/2)) + path_max=`${fstest} pathconf . _PC_PATH_MAX` + # "...including the terminating null character." + path_max=$((path_max-1)) + + name="" + while :; do + name="${name}`namegen_len ${complen}`/" + curlen=`printf "%s" "${name}" | wc -c` + [ ${curlen} -lt ${path_max} ] || break + done + name=`echo "${name}" | cut -b -${path_max}` + name=`echo "${name}" | sed -E 's@/$@x@'` + printf "%s" "${name}" +} + quick_exit() { echo "1..1"