1
1
Граф коммитов

699 Коммитов

Автор SHA1 Сообщение Дата
Gilles Gouaillardet
fa5cd0dbe5 use ptrdiff_t instead of OPAL_PTRDIFF_TYPE
since Open MPI now requires a C99, and ptrdiff_t type is part of C99,
there is no more need for the abstract OPAL_PTRDIFF_TYPE type.

Signed-off-by: Gilles Gouaillardet <gilles@rist.or.jp>
2017-04-19 13:41:56 +09:00
bosilca
872cf44c28 Improve the opal_pointer_array & more (#3369)
* Complete rewrite of opal_pointer_array
Instead of a cache oblivious linear search use a bits array
to speed up the management of the free space. As a result we
slightly increase the memory used by the structure, but we get a
significant boost in performance.

Signed-off-by: George Bosilca <bosilca@icl.utk.edu>

* Do not register datatypes in the f2c translation table.
The registration is now done up into the Fortran layer, by
forcing a call to MPI_Type_c2f.

Signed-off-by: George Bosilca <bosilca@icl.utk.edu>
2017-04-18 21:41:26 -04:00
Ralph Castain
585540bcee Reduce the flood of warnings due to uninitialized variables, mismatched types, and unused things to a more bearable trickle
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2016-12-14 16:33:50 -08:00
Ralph Castain
1e2019ce2a Revert "Update to sync with OMPI master and cleanup to build"
This reverts commit cb55c88a8b.
2016-11-22 15:03:20 -08:00
Ralph Castain
cb55c88a8b Update to sync with OMPI master and cleanup to build
Signed-off-by: Ralph Castain <rhc@open-mpi.org>
2016-11-22 14:24:54 -08:00
Joshua Hursey
f6f24a4f67 build: Custom libmpi(_FOO) name option in configure
* Add a configure time option to rename libmpi(_FOO).*
   - `--with-libmpi-name=STRING`
 * This commit only impacts the installed libraries.
   Internal, temporary libraries have not been renamed to limit the
   scope of the patch to only what is needed.

For example:
```shell
shell$ ./configure --with-libmpi-name=wookie
...
shell$ find . -name "libmpi*"
shell$ find . -name "libwookie*"
./lib/libwookie.so.0.0.0
./lib/libwookie.so.0
./lib/libwookie.so
./lib/libwookie.la
./lib/libwookie_mpifh.so.0.0.0
./lib/libwookie_mpifh.so.0
./lib/libwookie_mpifh.so
./lib/libwookie_mpifh.la
./lib/libwookie_usempi.so.0.0.0
./lib/libwookie_usempi.so.0
./lib/libwookie_usempi.so
./lib/libwookie_usempi.la
shell$
```
2016-09-29 21:47:24 -05:00
Karol Mroz
bb6ee605bf test: fixup hostname max length usage
Signed-off-by: Karol Mroz <mroz.karol@gmail.com>
2016-04-25 07:08:23 +02:00
Gilles Gouaillardet
5932287cef datatype/[un]pack_external[_size]: move subroutines down to ompi/datatype
so it can be directly used by test/datatype/external32
2016-03-30 13:01:33 +09:00
Gilles Gouaillardet
63eec552b2 datatype/external32: fix test 2016-03-30 11:40:18 +09:00
Gilles Gouaillardet
0f9ddbe02e test/datatype/external32: make it a non MPI application 2016-03-30 11:40:18 +09:00
George Bosilca
383b78d8a6 Validate the packed data
Use htonl and htons to check that the packed data is
indeed the correct data.
2016-03-30 11:40:18 +09:00
George Bosilca
8da67f5ef8 Add a test to validate the support for external32. 2016-03-30 11:40:18 +09:00
Jeff Squyres
2410275a73 monitoring test: fix printf warning
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
2016-03-26 03:50:57 -07:00
Jeff Squyres
1340d51ddd tests: fix library name
Use @OPAL_LIB_PREFIX@ as appropriate in the library that we link against.
2016-02-23 16:22:59 -08:00
George Bosilca
d6fb56af29 Use the correct printf conversion specifier. 2016-02-23 01:26:27 -06:00
Gilles Gouaillardet
1e26f9cda4 test/dss: update tests to make them usable again, and run them 2016-02-17 11:27:00 +09:00
Edgar Gabriel
722aab92e6 - extend opal_path_nfs to retrieve the file system type
- use opal_path_nfs in the fs_base function to avoid code duplication.
2016-01-26 13:36:21 -06:00
Jeff Squyres
65f5a26f76 monitoring_test.c: remove unused var
Silence compiler warning
2015-12-13 06:46:11 -08:00
Ralph Castain
e33515c87c Fix "autogen.pl --no-ompi", which was broken due to inclusion of a conditional in the test/monitoring Makefile.am that is only defined if OMPI is built.
Per suggestion from @bosilca, comment out generation of the shared library

Use the patch from Gilles instead
2015-12-06 21:10:17 -08:00
Ralph Castain
06f0322f7b Enable the ability to make tarballs on the Mac tarball by ensuring that "make distclean" completely cleans up the test directories
Add one more thing to be cleaned
2015-11-24 21:14:38 -08:00
Gilles Gouaillardet
c415ecf39e test/monitoring: build monitoring_prof lib only if dynamic libs are built
Thanks Mark Santcroos for reporting this
2015-11-10 11:33:12 +09:00
George Bosilca
5c60e76669 Fix Coverity CIDs 1338021, 1338020, 1338019, 1338018. 2015-11-02 17:38:51 -05:00
Guillaume Papauré
82cd802b21 add PMPI monitoring profiling lib 2015-10-31 17:13:35 -04:00
George Bosilca
09ef24cde0 Update the tester to take advantage of the integration of the monitoring
with the PVAR system.
2015-10-31 17:13:35 -04:00
George Bosilca
5224a7ce4d Allow the pvar to be written by invoking the associated callback.
Use a PVAR to generate the monitoring dump of the information into a
file.

Use the PVAR to instruct the PML monitoring when to do the dump.
2015-10-31 17:13:35 -04:00
George Bosilca
c801ffde86 Use MPI_T variables to handle the flush in a more MPI-blessed way.
Code cleanup.

Update the monitoring test to use MPI_T variables.
2015-10-31 17:13:35 -04:00
George Bosilca
a47d69202f Add a monitoring PML. This PML track all data exchanges by the processes
counting or not the collective traffic as a separate entity. The need
for such a PML is simply because the PMPI interface doesn't allow us to
identify the collective generated traffic.
2015-10-31 17:13:35 -04:00
Ralph Castain
cf6137b530 Integrate PMIx 1.0 with OMPI.
Bring Slurm PMI-1 component online
Bring the s2 component online

Little cleanup - let the various PMIx modules set the process name during init, and then just raise it up to the ORTE level. Required as the different PMI environments all pass the jobid in different ways.

Bring the OMPI pubsub/pmi component online

Get comm_spawn working again

Ensure we always provide a cpuset, even if it is NULL

pmix/cray: adjust cray pmix component for pmix

Make changes so cray pmix can work within the integrated
ompi/pmix framework.

Bring singletons back online. Implement the comm_spawn operation using pmix - not tested yet

Cleanup comm_spawn - procs now starting, error in connect_accept

Complete integration
2015-08-29 16:04:10 -07:00
Jeff Squyres
447eb4238a unpack_ooo: fix empty initializer 2015-08-29 04:57:02 -07:00
Jeff Squyres
ea935df632 test Makefile.am: fix flags
WRAPPER_EXTRA_LDFLAGS is both no longer used, and even if we fixed to
use the new names (i.e., <PACKAGE>_WRAPPER_EXTRA_LDFLAGS), it contains
a token that will not be understandable in Makefile.ams: @{libdir}.

Hence, update all instances to use <PACKAGE>_PKG_CONFIG_LDFLAGS, which
does not contain the @{libdir} token.  See comment in
opal_setup_wrappers.m4 for an explanation.
2015-08-25 14:04:51 -07:00
Jeff Squyres
42b9a966d6 Makefile.am's: if calling OPAL functions, must link to it
On some OSs (e.g., Ubuntu 14.04.2 LTS), the linker is configured such
that the symbols of library dependencies are not available to the
application.  Hence, we need to explicitly list such dependencies when
creating the executable.

For this commit, these tests are use OPAL function calls, so we must
explicitly link in libopen-pal.so.
2015-08-14 07:51:55 -07:00
Nathan Hjelm
0325100823 Fix PGI compilation of opal_condition test
PGI was failing to build this test due to the {} initializers of some
of the global variables. The initializers were added to remove common
symbols from the test repository. This commit removes the initializers
and makes the variables static which should fix both the compile issue
and avoid the common symbols.

This commit additionally removes the check for
OPAL_ENABLE_MULTI_THREADS since Open MPI requires thread support.

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-07-01 09:10:49 -06:00
Nathan Hjelm
ee36d813dc Merge pull request #657 from hjelmn/c99
more c99 updates
2015-06-25 11:21:09 -06:00
Nathan Hjelm
4d92c9989e more c99 updates
This commit does two things. It removes checks for C99 required
headers (stdlib.h, string.h, signal.h, etc). Additionally it removes
definitions for required C99 types (intptr_t, int64_t, int32_t, etc).

Signed-off-by: Nathan Hjelm <hjelmn@me.com>
2015-06-25 10:14:13 -06:00
rhc54
1a767ed47c Merge pull request #654 from rhc54/topic/config
Remove internal bool type definitions
2015-06-25 09:10:21 -07:00
Ralph Castain
57b7c44aec Cleanup the rest of the no-longer-required bool configury 2015-06-24 08:25:49 -07:00
Ralph Castain
869041f770 Purge whitespace from the repo 2015-06-23 20:59:57 -07:00
Gilles Gouaillardet
89882f11bd rewrite ddt_pack test
so make check works without make install
2015-05-07 18:14:32 +09:00
Jeff Squyres
98943d3c8b test/datatype: move ddt_pack to MPI_CHECKS
This still leaves the test disabled (per
b25a7bfe14), but it does still build the
test.
2015-05-02 03:57:19 -07:00
Jeff Squyres
b25a7bfe14 test/datatype: temporarily disable ddt_pack test
This test needs to be tweaked to not use MPI_Init (and only use
opal_init_util(), per #568).  @ggouaillardet can't get to this until
next week sometime, so we're just temporarily disabling it for now.

Fixes #568
2015-05-02 03:53:08 -07:00
George Bosilca
53e9543be4 This test should pass. 2015-04-30 22:51:27 -04:00
George Bosilca
27c3631466 Correctly free the temporary datatypes 2015-04-30 22:51:01 -04:00
George Bosilca
267fdfe435 Add a corner case for struct with multiple predefined types.
Cleanup the datatypes once they are not useful.
Other minor fixes.
2015-04-30 22:06:49 -04:00
Gilles Gouaillardet
06ee9f9ddf enhance test/datatype/ddt_pack
* add a simple test with MPI_Type_vector
 * add some extra checks : (true)lower_bound and (true)extent
   of original and unpacked ddt should match
2015-04-30 15:04:53 +09:00
Gilles Gouaillardet
ed0c48de74 test/datatype/ddt_pack fix
unpacking a packed MPI_INT returns MPI_INT32T instead of MPI_INT
2015-04-30 15:04:53 +09:00
George Bosilca
424b8f170d Another uninitialized common symbol removed. 2015-04-25 14:04:56 -04:00
George Bosilca
98cca1b6b3 Remove all uninitialized common symbols in the test directory. 2015-04-25 13:54:45 -04:00
Jeff Squyres
4f1139590f datatypes: trivial spelling fix
s/commited/committed/gi
2015-02-27 18:16:01 -08:00
Ralph Castain
fcd2d9ac39 Silence warnings in the test directory 2015-02-27 08:12:03 -08:00
Nathan Hjelm
5f1254d710 Update code base to use the new opal_free_list_t
Use of the old ompi_free_list_t and ompi_free_list_item_t is
deprecated. These classes will be removed in a future commit.

This commit updates the entire code base to use opal_free_list_t and
opal_free_list_item_t.

Notes:

OMPI_FREE_LIST_*_MT -> opal_free_list_* (uses opal_using_threads ())

Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
2015-02-24 10:05:45 -07:00
Jeff Squyres
6af4f1896c test: these files are not used any more
The functions in components.* are not used by any tests.  Removing
this old kruft.
2015-01-30 14:30:14 -08:00
Gilles Gouaillardet
661c35ca67 cleanup dead code caused by the removal of the --with-threads configure option 2015-01-16 19:13:59 +09:00
George Bosilca
82c02b471e Take in acount the lower bound of the data. 2014-12-20 21:28:58 -05:00
George Bosilca
4f9a3bdbab Correctly compute the size of the needed memory for the datatype tests.
Fixes open-mpi/ompi#294.
2014-12-20 01:30:37 -05:00
George Bosilca
cf3ff3fe58 This was not supposed to be part of the 1895f29 commit. 2014-12-19 09:55:18 -05:00
George Bosilca
1895f29537 Remove all warnings from the datatype tests. 2014-12-18 02:58:21 -05:00
Nathan Hjelm
bc33b7a71d Add check for timersub to opal_lifo and opal_fifo tests
Some platforms do not provide a timersub macro. This commit adds a definition
to both tests when running on one of these platforms.
2014-12-17 22:16:15 -07:00
Ralph Castain
91bec7e9dd Fix some type declarations so make check works for SPARC. Thanks to Paul Hargrove for the report and correction 2014-12-15 06:44:51 -08:00
Nathan Hjelm
da5e3ce936 test/class: update class tests to also use opal_finalize_util 2014-12-10 17:50:26 -07:00
Jeff Squyres
b1e9e7f56f Whitespace cleanup only; no code changes 2014-12-10 13:32:04 -08:00
Jeff Squyres
8b2410f554 class tests: re-enable a bunch of tests
Many of these tests were failing due to opal_init() failing in some
cases (because the opal shmem framework needs installed components, so
"make distcheck" would fail these tests because the opal shmem
components were not installed).  However, all of these tests seem to
be fine with opal_init_util() -- so let's re-enable these tests.
2014-12-10 13:30:14 -08:00
Jeff Squyres
ff2a75b29b class tests: change from opal_init() to opal_init_util() 2014-12-10 13:29:38 -08:00
Nathan Hjelm
1231bb7479 Update lifo and fifo tests to use opal_init/finalize_util so they work during make distcheck 2014-12-09 17:41:18 -07:00
Ralph Castain
04c6d1d01d Silence warnings 2014-12-09 16:10:58 -08:00
Nathan Hjelm
b2b7ecc7c4 Merge pull request #300 from hjelmn/topic/atomic_lifo_fifo
Add opal_fifo_t class and rename opal_atomic_lifo_t to opal_lifo_t
2014-12-09 10:54:50 -06:00
Ralph Castain
595740a8e3 Sigh - readd missing headers 2014-12-05 21:54:41 -08:00
Ralph Castain
4a0b4ad5ef You can't have a variable of the same name as the function... 2014-12-05 21:50:40 -08:00
Ralph Castain
aff1f0ee49 Add missing header files 2014-12-05 19:03:21 -08:00
Nathan Hjelm
23d59b0f5d Fix one typo in opal_path_nfs.c 2014-12-05 13:13:35 -07:00
Nathan Hjelm
0fc8777aa8 opal_path_nfs test: do not try to test filesystems that can not be stat'd 2014-12-05 13:11:45 -07:00
Jeff Squyres
9b18b4b2d2 opal_path_nfs: enable debugging output
Now that "make check" siphons off stdout/stderr to logfiles, it's ok
to have output by default from tests.  This test fails often enough
that it's useful to see the diagnostic output.
2014-12-05 03:19:51 -08:00
Nathan Hjelm
3aefd78842 Add lifo and fifo checks to make check 2014-12-04 16:03:47 -07:00
Nathan Hjelm
d1114ec17a Add opal_fifo_t class
This commit adds a new class: opal_fifo.h. The new class has atomic, non-atomic,
and opal_using_threads() conditoned routines. It should be used when first-in
first-out is required and should perform much better than using locks and an
opal_list_t. Like with opal_lifo_t there are two versions of the atomic
implementation: 128-bit compare-and-swap, and spin-locked. More implementations
can be added later (LL/SC comes to mind).

This commit also adds a unit test for the opal_fifo_t class. This test verifies
the fifo implementation when using multiple threads.
2014-12-04 15:30:02 -07:00
Nathan Hjelm
20c6eb5237 Rename opal_atomic_lifo_t to opal_lifo_t and improve interface
- Rename opal_atomic_lifo_t to opal_lifo_t to reflect both atomic and
   non-atomic usage. Added new routines (opal_lifo_*_st) for non-atomic
   usage as well as routines conditioned off opal_using_threads(). The
   atomic versions are always thread safe and the non-atomic are always
   not thread safe.

 - Add a new atomic lifo implementation that makes use of 128-bit
   compare-and-swap. The new implementation should scale better with
   larger numbers of threads.

 - Add threading unit test for opal_lifo_t.
2014-12-04 15:30:02 -07:00
George Bosilca
8ee501350b Implement strict validation for the packing/unpacking of the data. 2014-12-02 16:22:18 +09:00
Ralph Castain
53af0f1594 Temporarily turn off a specific datatype test that is preventing the nightly tarball from running 2014-12-01 19:52:37 -08:00
George Bosilca
59b739ee90 Add a resized datatype to the test. Implement generic
data corectness for most of the conversion functions.
2014-11-29 19:47:25 -05:00
George Bosilca
ee3d1ed5fd Add tests for vector type. 2014-11-24 01:52:49 -05:00
Ralph Castain
780c93ee57 Per the PR and discussion on today's telecon, extend the process name definition as a two-field struct of uint32_t's down to the OPAL layer. This resolves issues created by prior commits that impacted both heterogeneous and SPARC support. This also simplifies the OMPI code base by removing the need for frequent memcpy's when transitioning between the OMPI/ORTE layers and OPAL.
We recognize that this means other users of OPAL will need to "wrap" the opal_process_name_t if they desire to abstract it in some fashion. This is regrettable, and we are looking at possible alternatives that might mitigate that requirement. Meantime, however, we have to put the needs of the OMPI community first, and are taking this step to restore hetero and SPARC support.
2014-11-11 17:00:42 -08:00
Jeff Squyres
01fd96bfa5 Revert "Provide a mechanism by which an upstream project can rename
the OPAL and ORTE libraries. This is required by projects such as ORCM
that have their own ORTE and OPAL libraries in order to avoid library
confusion. By renaming their version of the libraries, the OMPI
applications can correctly dynamically load the correct one for their
build."

This reverts commit 63f619f871.
2014-10-22 10:32:11 -07:00
George Bosilca
7541c03b4c Mark all instances where atomic operations are used but their return value is unnecessary 2014-10-15 21:47:32 -04:00
Ralph Castain
63f619f871 Provide a mechanism by which an upstream project can rename the OPAL and ORTE libraries. This is required by projects such as ORCM that have their own ORTE and OPAL libraries in order to avoid library confusion. By renaming their version of the libraries, the OMPI applications can correctly dynamically load the correct one for their build. 2014-10-10 11:39:08 -07:00
Joshua Ladd
1cabd73522 Adding a new OPAL hash table routine. Please read the algorithm description in opal/class/opal_hash_table.c for more precise details on the design and implementation. This algorithm was contributed by David Linden of H.P. in partnership with Mellanox Technologies. This contribution achieves two objectives:
1. It's actually hashing now, whereas the old OPAL hash table was not. Thus, it is a bug fix for and, as such, should be included in the 1.8 series.

2. It is dynamic and can grow and shrink the number of buckets in accordance with job size, whereas the old OPAL hash table had a fixed number of buckets which resulted in poor retrieval performance at large scale.

This scheme has been deployed in the field on very large H.P./Mellanox systems and has been demonstrated to significantly decrease job start-up time (~ 20% improvement) when launching applications directly with srun in SLURM environments. However, neither SLURM nor direct launch are prerequisites to take advantage of this change as any entity that utilizes OPAL hash table objects can benefit (at least partially) from this contribution.
2014-10-09 17:24:23 +02:00
Joshua Ladd
97abb7c727 Backing out the new Opal Hash table until the legal issues are address by H.P.
Refs trac:4872

This commit was SVN r32583.

The following Trac tickets were found above:
  Ticket 4872 --> https://svn.open-mpi.org/trac/ompi/ticket/4872
2014-08-22 19:10:09 +00:00
Joshua Ladd
84d0cc27a2 Adding a new OPAL hash table routine. Contributed by David Linden of H.P. in partnership
with Mellanox Technologies. This should be added to 


cmr=v1.8.2:subject=New OPAL hash table:reviewer=rhc

This commit was SVN r32564.
2014-08-20 21:40:28 +00:00
George Bosilca
f217661ee0 Use opal_process_info whenever possible. Some other minor cleanups.
This commit was SVN r32325.
2014-07-26 21:48:23 +00:00
Ralph Castain
6f96027aa1 Turn off the ompi_rb_tree test for now
This commit was SVN r32319.
2014-07-26 01:50:56 +00:00
Jeff Squyres
df82810d03 opal_path_nfs.c test: skip fuse filesystems
Linux statfs(2) lies about the type of fuse filesystems (it reports
fuse.encfs as an NFS filesystem).  So just skip fuse filesystems in
this test until/if we ever care to add some kind of workaround.

Refs trac:4767

cmr=v1.8.2:reviewer=rhc

This commit was SVN r32152.

The following Trac tickets were found above:
  Ticket 4767 --> https://svn.open-mpi.org/trac/ompi/ticket/4767
2014-07-08 13:30:49 +00:00
George Bosilca
fbe69808f2 A faster implementation of the OPAL_BITMAP. The corresponding
test has also been updated.

This commit was SVN r32001.
2014-06-13 21:15:35 +00:00
Gilles Gouaillardet
90c2f4a10a Fix unpack_ooo test
The test fails on a 32 bits system.
The root cause is a rounding error when testing double numbers.

This commit was SVN r31958.
2014-06-06 07:53:28 +00:00
George Bosilca
40d2c75046 Add a slightly modified version of Gilles test for the
irregular packing/unpacking of datatypes.

This commit was SVN r31952.
2014-06-04 18:33:30 +00:00
George Bosilca
ba211d97ef Remove a double const warning.
This commit was SVN r31879.
2014-05-22 06:09:45 +00:00
Jeff Squyres
09f98cb165 Fix a bunch of compiler warnings in the tests, including:
* Resolve set-but-not-used issues
 * Resolve incorrect const notation (I checked with George first to see
   what const notation he actually wanted)
 * Comment out unused code (didn't delete it because it's useful
   debugging code)
 * Resolve int<-->void* casting
 * Resolved signed / unsigned comparisons

This commit was SVN r30225.
2014-01-10 13:36:33 +00:00
Jeff Squyres
c44a1027d0 Make the non-Linux platforms support an interactive opal_path_nfs() test.
On Linux, if this test is run with no command line params, it will run
"mount" and analyze the output (same as it always has).

On all platforms, if you provide one or more command line options,
each command line option is given to opal_path_nfs() and the result is
sent to stdout.

This commit was SVN r30208.
2014-01-10 00:13:10 +00:00
Jeff Squyres
f026bdb68b Remove unused variable
Refs trac:4004

This commit was SVN r30021.

The following Trac tickets were found above:
  Ticket 4004 --> https://svn.open-mpi.org/trac/ompi/ticket/4004
2013-12-20 16:16:24 +00:00
George Bosilca
a85194ae96 Cleanup all the datatype test to avoid any memory leaks or RUI from valgrind.
This commit was SVN r30018.
2013-12-20 15:55:09 +00:00
Jeff Squyres
435eaf4671 This is an opal test; it should include opal_config.h, not ompi_config.h.
This matters if you autogen.pl --no-ompi.

This commit was SVN r29855.
2013-12-11 03:31:25 +00:00
Dave Goodell
002ba95deb regression test for r29285 (convertor_set_position)
This commit was SVN r29296.

The following SVN revision numbers were found above:
  r29285 --> open-mpi/ompi@43b4d76913
2013-09-30 16:21:19 +00:00
Ralph Castain
9366fda374 Fix names in test - still generating warnings
This commit was SVN r28740.
2013-07-09 02:58:58 +00:00
George Bosilca
c9e5ab9ed1 Our macros for the OMPI-level free list had one extra argument, a possible return
value to signal that the operation of retrieving the element from the free list
failed. However in this case the returned pointer was set to NULL as well, so the
error code was redundant. Moreover, this was a continuous source of warnings when
the picky mode is on.

The attached parch remove the rc argument from the OMPI_FREE_LIST_GET and
OMPI_FREE_LIST_WAIT macros, and change to check if the item is NULL instead of
using the return code.

This commit was SVN r28722.
2013-07-04 08:34:37 +00:00