PSARC 2016/379 genders - version 1.22
authorRich Burridge <rich.burridge@oracle.com>
Wed, 27 Jul 2016 17:55:59 -0700
changeset 6500 eb9df404cf15
parent 6499 0488b543dda0
child 6501 0b2e4d3429a9
PSARC 2016/379 genders - version 1.22 PSARC 2016/380 pdsh - version 2.29 21225964 Add pdsh version 2.29 to Solaris 23570234 Add genders version 1.22 to Solaris
components/genders/Makefile
components/genders/genders.p5m
components/genders/test/results-all.master
components/meta-packages/history/sfw-incorporation.p5m
components/pdsh/Makefile
components/pdsh/depend.mk
components/pdsh/patches/find-genders-lib.patch
components/pdsh/pdsh.p5m
components/pdsh/test/results-64.master
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/genders/Makefile	Wed Jul 27 17:55:59 2016 -0700
@@ -0,0 +1,61 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64_and_32
+include ../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		genders
+COMPONENT_VERSION=	1.22
+COMPONENT_PROJECT_URL=	https://github.com/chaos/genders
+COMPONENT_ARCHIVE_HASH=	\
+    sha256:0ff292825a29201106239c4d47d9ce4c6bda3f51c78c0463eb2634ecc337b774
+COMPONENT_ARCHIVE_URL=	http://downloads.sourceforge.net/project/$(COMPONENT_NAME)/$(COMPONENT_NAME)/$(COMPONENT_VERSION)-1/$(COMPONENT_ARCHIVE)
+COMPONENT_BUGDB=	library/libgenders
+
+TPNO=			29494
+
+include $(WS_MAKE_RULES)/common.mk
+
+ASLR_MODE = $(ASLR_ENABLE)
+
+CONFIGURE_OPTIONS +=   --bindir=/usr/bin
+CONFIGURE_OPTIONS +=   --without-cplusplus-extensions
+CONFIGURE_OPTIONS +=   --without-perl-extensions
+CONFIGURE_OPTIONS +=   --without-python-extensions
+CONFIGURE_OPTIONS +=   --without-java-extensions
+
+COMPONENT_TEST_DIR =	$(@D)/src/testsuite
+COMPONENT_TEST_MASTER =	$(COMPONENT_TEST_RESULTS_DIR)/results-all.master
+
+COMPONENT_TEST_TRANSFORMS += \
+	'-e "s|^.*$(CC).*$$|XXX_REMOVE_XXX|g" ' \
+	'-e "s|^.*source=.*libtool=no.*$$|XXX_REMOVE_XXX|g" ' \
+	'-e "s|^.*DEPDIR=.deps.*$$|XXX_REMOVE_XXX|g" ' \
+	'-e "s|^make.*: Leaving directory.*$$|XXX_REMOVE_XXX|g" ' \
+	'-e "s|^make.*: Entering directory.*$$|XXX_REMOVE_XXX|g" ' \
+	'-e "s|^make.*: Nothing to be.*$$|XXX_REMOVE_XXX|g" ' \
+	'-e "s|^.*warning:.*$$|XXX_REMOVE_XXX|g" ' \
+	'-e "s|^.*s up to date.*$$|XXX_REMOVE_XXX|g" ' \
+	'-e "/^XXX_REMOVE_XXX$$/d" ' \
+	'-e "/libtool:/d"'
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/genders/genders.p5m	Wed Jul 27 17:55:59 2016 -0700
@@ -0,0 +1,90 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+#
+
+<transform file path=usr.*/man/.+ -> default mangler.man.stability "pass-through volatile">
+set name=pkg.fmri \
+    value=pkg:/library/libgenders@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary value="genders - a static cluster configuration database"
+set name=pkg.description \
+    value="Genders is a static cluster configuration database used for cluster configuration management. It is used by a variety of tools and scripts for management of large clusters."
+set name=com.oracle.info.description \
+    value="the genders static cluster configuration database"
+set name=com.oracle.info.tpno value=$(TPNO)
+set name=info.classification \
+    value=org.opensolaris.category.2008:System/Libraries
+set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
+set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
+set name=org.opensolaris.arc-caseid value=PSARC/2016/379
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+file path=usr/bin/nodeattr
+file path=usr/include/genders.h
+link path=usr/lib/$(MACH64)/libgenders.so target=libgenders.so.0.3.2
+link path=usr/lib/$(MACH64)/libgenders.so.0 target=libgenders.so.0.3.2
+file path=usr/lib/$(MACH64)/libgenders.so.0.3.2
+file path=usr/lib/genders/gendlib.pl
+file path=usr/lib/genders/hostlist.pl
+link path=usr/lib/libgenders.so target=libgenders.so.0.3.2
+link path=usr/lib/libgenders.so.0 target=libgenders.so.0.3.2
+file path=usr/lib/libgenders.so.0.3.2
+file path=usr/share/man/man1/nodeattr.1
+file path=usr/share/man/man3/genders.3
+file path=usr/share/man/man3/genders_attrlist_clear.3
+file path=usr/share/man/man3/genders_attrlist_create.3
+file path=usr/share/man/man3/genders_attrlist_destroy.3
+file path=usr/share/man/man3/genders_errnum.3
+file path=usr/share/man/man3/genders_errormsg.3
+file path=usr/share/man/man3/genders_getattr.3
+file path=usr/share/man/man3/genders_getattr_all.3
+file path=usr/share/man/man3/genders_getmaxattrlen.3
+file path=usr/share/man/man3/genders_getmaxattrs.3
+file path=usr/share/man/man3/genders_getmaxnodelen.3
+file path=usr/share/man/man3/genders_getmaxvallen.3
+file path=usr/share/man/man3/genders_getnodename.3
+file path=usr/share/man/man3/genders_getnodes.3
+file path=usr/share/man/man3/genders_getnumattrs.3
+file path=usr/share/man/man3/genders_getnumnodes.3
+file path=usr/share/man/man3/genders_handle_create.3
+file path=usr/share/man/man3/genders_handle_destroy.3
+file path=usr/share/man/man3/genders_index_attrvals.3
+file path=usr/share/man/man3/genders_isattr.3
+file path=usr/share/man/man3/genders_isattrval.3
+file path=usr/share/man/man3/genders_isnode.3
+file path=usr/share/man/man3/genders_load_data.3
+file path=usr/share/man/man3/genders_nodelist_clear.3
+file path=usr/share/man/man3/genders_nodelist_create.3
+file path=usr/share/man/man3/genders_nodelist_destroy.3
+file path=usr/share/man/man3/genders_parse.3
+file path=usr/share/man/man3/genders_perror.3
+file path=usr/share/man/man3/genders_query.3
+file path=usr/share/man/man3/genders_strerror.3
+file path=usr/share/man/man3/genders_testattr.3
+file path=usr/share/man/man3/genders_testattrval.3
+file path=usr/share/man/man3/genders_testquery.3
+file path=usr/share/man/man3/genders_vallist_clear.3
+file path=usr/share/man/man3/genders_vallist_create.3
+file path=usr/share/man/man3/genders_vallist_destroy.3
+file path=usr/share/man/man3/gendlib.3
+file path=usr/share/man/man3/libgenders.3
+license COPYING license=GPLv2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/genders/test/results-all.master	Wed Jul 27 17:55:59 2016 -0700
@@ -0,0 +1,5 @@
+Making check in libgenders
+Making check in testdatabases
+bison -y -d -b genders_query $(SOURCE_DIR)/src/libgenders/genders_query.y
+flex -t $(SOURCE_DIR)/src/libgenders/genders_query_parse.l > $(SOURCE_DIR)/src/libgenders/genders_query_parse.c
+source='genders_query.tab.c' object='libgenders_la-genders_query.tab.lo' libtool=yes \
--- a/components/meta-packages/history/sfw-incorporation.p5m	Wed Jul 27 17:36:51 2016 -0700
+++ b/components/meta-packages/history/sfw-incorporation.p5m	Wed Jul 27 17:55:59 2016 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 set name=pkg.fmri \
@@ -253,7 +253,6 @@
 depend type=incorporate fmri=service/network/load-balancer/[email protected]
 depend type=incorporate fmri=service/network/sip/ser/[email protected]
 depend type=incorporate fmri=service/network/sip/[email protected]
-depend type=incorporate fmri=shell/[email protected]
 depend type=incorporate fmri=shell/[email protected]
 depend type=incorporate fmri=system/management/[email protected]
 depend type=incorporate fmri=system/management/wbem/[email protected]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/pdsh/Makefile	Wed Jul 27 17:55:59 2016 -0700
@@ -0,0 +1,96 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+#
+BUILD_BITS= 64
+include ../../make-rules/shared-macros.mk
+include $(WS_MAKE_RULES)/shared-targets.mk
+
+COMPONENT_NAME=		pdsh
+COMPONENT_VERSION=	2.29
+COMPONENT_PROJECT_URL=	https://code.google.com/archive/p/pdsh
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.bz2
+COMPONENT_ARCHIVE_HASH=	\
+    sha256:57f0903bf782afe00874267b59e0f4adefa79da4c48d0257c5ae2bef02f87fcf
+COMPONENT_ARCHIVE_URL=	https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
+
+TPNO=			29495
+
+# Old version in SFW was not version-locked, so cannot be upgraded to, so
+# do not publish.
+ifeq ($(BUILD_TYPE), evaluation)
+BUILD_64=
+INSTALL_64=
+PUBLISH_STAMP=
+endif
+
+include $(WS_MAKE_RULES)/common.mk
+
+# Needed to make the tests work successfully.
+COMPONENT_PRE_CONFIGURE_ACTION = ($(CLONEY) $(SOURCE_DIR) $(@D))
+
+# Prevent libtool from embedding runpath (via -R) and other such annoyances.
+COMPONENT_POST_CONFIGURE_ACTION += \
+	(cd $(BUILD_DIR_$(BITS)) ; \
+	$(GSED) -i \
+	-e 's|hardcode_into_libs=yes|hardcode_into_libs=no|g' \
+	-e 's|hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
+	-e 's|need_relink=yes|need_relink=not_on_solaris|g' \
+	libtool)
+
+# Delete this when build servers are installed with genders
+GENDERS_BASE = $(WS_COMPONENTS)/genders/build/prototype/$(MACH)
+GENDERS_INC_DIR += -I$(GENDERS_BASE)/usr/include
+GENDERS_LD_OPTIONS += -L$(GENDERS_BASE)/usr/lib/$(MACH64)
+
+CONFIGURE_ENV += CPPFLAGS="$(CPPFLAGS) $(GENDERS_INC_DIR)"
+CONFIGURE_ENV += GENDERS_LD_OPTIONS="$(GENDERS_LD_OPTIONS)"
+CONFIGURE_ENV += LDFLAGS="$(LDFLAGS) $(GENDERS_LD_OPTIONS)"
+
+CONFIGURE_OPTIONS +=	--with-genders
+CONFIGURE_OPTIONS +=	--with-readline
+CONFIGURE_OPTIONS +=	--with-ssh
+CONFIGURE_OPTIONS +=	--without-rsh
+
+COMPONENT_TEST_ENV +=   PATH="/usr/gnu/bin:/usr/bin"
+COMPONENT_TEST_DIR =	$(@D)/tests
+
+COMPONENT_TEST_TRANSFORMS += \
+	'-n ' \
+	'-e "/^Makefile/d" ' \
+	'-e "/^ok /p" ' \
+	'-e "/^not ok /p" ' \
+	'-e "/still have/p" ' \
+	'-e "/complete/p" ' \
+	'-e "/^\*\*\* /p" ' \
+	'-e "/^===/p" ' \
+	'-e "/skipped/p" ' \
+	'-e "/passed/p" ' \
+	'-e "/failed/p" ' \
+	'-e "/^FAIL/p" '
+
+REQUIRED_PACKAGES += library/libgenders
+REQUIRED_PACKAGES += library/ncurses
+REQUIRED_PACKAGES += library/readline
+REQUIRED_PACKAGES += runtime/perl-522
+REQUIRED_PACKAGES += system/library
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/pdsh/depend.mk	Wed Jul 27 17:55:59 2016 -0700
@@ -0,0 +1,1 @@
+pdsh:	genders
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/pdsh/patches/find-genders-lib.patch	Wed Jul 27 17:55:59 2016 -0700
@@ -0,0 +1,29 @@
+Until the genders package is available on Userland build machines, then we
+need to get libgenders.so from the prototype area of the built genders
+component. Unfortunately there are no configure smarts to allow this to
+be easily done.
+
+This patch will not be sent upstream. When genders is on the Userland build
+machines then this patch can be removed, along with the CONFIGURE_ENV line
+in the component Makefile.
+
+--- pdsh-2.29/configure.orig	2016-07-24 16:55:41.644998411 -0700
++++ pdsh-2.29/configure	2016-07-24 17:05:14.064517775 -0700
+@@ -24937,7 +24937,7 @@
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lgenders  $LIBS"
++LIBS="$GENDERS_LD_OPTIONS -lgenders  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+@@ -25024,7 +25024,7 @@
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lgenders  $LIBS"
++LIBS="$GENDERS_LD_OPTIONS -lgenders  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/pdsh/pdsh.p5m	Wed Jul 27 17:55:59 2016 -0700
@@ -0,0 +1,51 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+#
+
+<transform file path=usr.*/man/.+ -> default mangler.man.stability "pass-through volatile">
+set name=pkg.fmri \
+    value=pkg:/shell/pdsh@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary value="pdsh a parallel remote shell utility"
+set name=pkg.description \
+    value="pdsh is a high-performance, parallel remote shell utility. It uses a sliding window of threads to execute remote commands, conserving socket resources while allowing some connections to timeout if needed."
+set name=com.oracle.info.description value="the pdsh remote shell utility"
+set name=com.oracle.info.tpno value=$(TPNO)
+set name=info.classification value=org.opensolaris.category.2008:System/Shells
+set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
+set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
+set name=org.opensolaris.arc-caseid value=PSARC/2016/380
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+file path=usr/bin/dshbak
+file path=usr/bin/pdcp
+file path=usr/bin/pdsh
+file path=usr/bin/rpdcp
+file path=usr/lib/$(MACH64)/pdsh/execcmd.so
+file path=usr/lib/$(MACH64)/pdsh/genders.so \
+    pkg.depend.bypass-generate=libgenders.so.0
+file path=usr/lib/$(MACH64)/pdsh/sshcmd.so
+file path=usr/share/man/man1/dshbak.1
+file path=usr/share/man/man1/pdcp.1
+file path=usr/share/man/man1/pdsh.1
+link path=usr/share/man/man1/rpdcp.1 target=pdcp.1
+license COPYING license=GPLv2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/pdsh/test/results-64.master	Wed Jul 27 17:55:59 2016 -0700
@@ -0,0 +1,150 @@
+*** t0001-basic.sh ***
+ok 1 - working success
+not ok 2 - pretend known breakage # TODO known breakage
+ok 3 - pretend we have fixed a known breakage (run in sub test-lib)
+ok 4 - test runs if prerequisite is satisfied
+ok 5 - tests clean up after themselves
+ok 6 - tests clean up even on failures
+ok 7 - pdsh runs
+ok 8 - pdsh -V works
+ok 9 - pdsh -L works
+ok 10 - pdsh -h works
+ok 11 - rcmd/exec module is built
+ok 12 - pdsh -N option works
+ok 13 # skip -u option is functional (missing LONGTESTS)
+ok 14 - -f sets fanout
+ok 15 - -l sets remote username
+ok 16 - too long username fails gracefully
+ok 17 - -t sets connect timeout
+ok 18 - -u sets command timeout
+ok 19 - command timeout 0 by default
+ok 20 - -b enables batch mode
+ok 21 - pdsh -N option works
+# still have 1 known breakage(s)
+# passed all remaining 20 test(s)
+*** t0002-internal.sh ***
+ok 1 - working xstrerrorcat
+ok 2 - working pipecmd
+# passed all 2 test(s)
+*** t0003-wcoll.sh ***
+ok 1 - hostname range expansion works
+ok 2 - host range expansion does not strip leading zeros
+ok 3 - host range expansion handles mixed size suffixes
+ok 4 - host range expansion works with "," embedded in range
+ok 5 - host range expansion works with 2 sets of brackets
+ok 6 - pdsh -x option works
+ok 7 - pdsh -x option works with ranges
+ok 8 - pdsh -x option works with ranges (gnats:118)
+ok 9 - pdsh -x option works with non-numeric suffix (gnats:120)
+ok 10 - pdsh -w- reads from stdin
+ok 11 - pdsh -w- can be used with other -w args
+ok 12 - WCOLL environment variable works
+ok 13 - ranges can be embedded in wcoll files
+ok 14 - ^file works
+ok 15 - -x ^file works
+ok 16 - ^file works with other args
+ok 17 - Multiple ^file args
+ok 18 - Multiple -w^file
+ok 19 - -^file excludes hosts in file
+ok 20 - ^file errors out if file doesnt exist
+ok 21 - host exclusion with "-" works
+ok 22 - regex filtering works
+ok 23 - regex exclusion works
+ok 24 - regex exclusion works from -x
+ok 25 - multiple -w options
+ok 26 - wcoll files support #include syntax
+ok 27 - wcoll #include syntax searches dirname of orignal file
+ok 28 - wcoll #include syntax ignores malformed lines
+ok 29 - wcoll match #include exactly
+ok 30 - wcoll: #include alone fails
+# passed all 30 test(s)
+*** t0004-module-loading.sh ***
+ok 1 - PDSH_MODULE_DIR functionality
+ok 2 - module A takes precedence over B
+ok 3 - pdsh -M B ativates module B
+ok 4 - PDSH_MISC_MODULES option works
+ok 5 - -M option overrides PDSH_MISC_MODULES environment var
+not ok - 6 pdsh help string correctly displays options of loaded modules
+ok 7 - Loading conflicting module with -M causes error
+not ok - 8 Conflicting modules dont run init()
+ok 9 - Force loaded module runs init()
+ok 10 - New conflicting module does not run init() with -M
+# failed 2 among 10 test(s)
+*** t0005-rcmd_type-and-user.sh ***
+ok 1 - pdsh -l sets username for all hosts
+ok 2 - Can set remote username via user@hosts
+ok 3 - user@hosts works for a subset of hosts
+ok 4 - Can set rcmd_type via rcmd_type:hosts
+ok 5 - Can set rcmd_type and user via rcmd_type:user@hosts
+# passed all 5 test(s)
+*** t0006-pdcp.sh ***
+ok 1 - Creating pdcp link to pdsh binary
+ok 2 - Creating rpdcp link to pdsh binary
+ok 3 - pdcp runs
+ok 4 - rpdcp runs
+ok 5 - pdcp -V works
+ok 6 - pdcp -q works
+ok 7 - -e sets remote program path
+ok 8 - PDSH_REMOTE_PDCP_PATH sets remote program path
+ok 9 - -f sets fanout
+ok 10 - -l sets remote username
+ok 11 - -t sets connect timeout
+ok 12 - -u sets command timeout
+ok 13 - command timeout 0 by default
+ok 14 - Have pcptest rcmd module
+ok 15 - pdcp basic functionality
+ok 16 - rpdcp basic functionality
+ok 17 - initialize directory tree
+ok 18 - pdcp -r works
+ok 19 - rpdcp -r works
+# passed all 19 test(s)
+*** t1001-genders.sh ***
+# passed all 0 test(s)
+*** t1002-dshgroup.sh ***
+# passed all 0 test(s)
+*** t1003-slurm.sh ***
+# passed all 0 test(s)
+*** t2000-exec.sh ***
+ok 1 - exec module works
+ok 2 - exec cmd substitution works 
+ok 3 - exec module works in interactive mode
+ok 4 - exec cmd susbstitution works interactive mode
+# passed all 4 test(s)
+*** t2001-ssh.sh ***
+# passed all 0 test(s)
+*** t2002-mrsh.sh ***
+# passed all 0 test(s)
+*** t5000-dshbak.sh ***
+ok 1 - dshbak functionality
+ok 2 - dshbak -c does not coalesce different length output
+ok 3 - dshbak -c properly compresses multi-digit suffixes
+ok 4 - dshbak -c properly compresses prefix with embedded numerals
+ok 5 - dshbak -c does not strip leading zeros
+ok 6 - dshbak -c does not coalesce different zero padding
+ok 7 - dshbak -c properly coalesces zero padding of "00"
+ok 8 - dshbak -c can detect suffixes
+not ok 9 - dshbak -c can detect suffix with numeral # TODO known breakage
+ok 10 - issue 19: missing commas in dshbak header output
+ok 11 - dshbak properly joins 9,10
+ok 12 - issue 33: dshbak does not coalesce 09,10
+ok 13 - issue 33: dshbak does not coalesce 099,100
+ok 14 - dshbak -d functionality
+ok 15 - dshbak -f functionality
+ok 16 - dshbak -f without -d fails
+ok 17 - dshbak -d fails when output dir does not exist
+ok 18 - dshbak -d fails gracefully for non-writable dir
+# still have 1 known breakage(s)
+# passed all remaining 17 test(s)
+*** t6036-long-output-lines.sh ***
+ok 1 - pdsh does not truncate very long lines
+ok 2 - pdsh does not truncate even longer lines
+# passed all 2 test(s)
+pdsh test suite complete.
+106/112 tests passed.
+2 broken tests failed as expected.
+2 tests failed.
+1 test skipped.
+FAIL: runtests.sh
+===================
+1 of 1 tests failed
+===================