Commit Graph

5 Commits

Author SHA1 Message Date
Dana Robinson
febb17322b [svn-r24278] Purpose: Block v-1 B-tree writes under SWMR write semantics
Description:
Modified the MD cache so that v-1 B-tree node writes are prohibited
under SWMR semantics.

Testing changes:
testswmr
Removed the -i b1 option from the test.
NOTE: The testswmr.sh test performs operations that are not currently
supported under our current level of SWMR implementation.

links
Modified an external link test so that a close/reopen w/ SWMR write
test is not performed when the v-1 B-trees are used.

dsets
Chunk tests don't run when using SWMR and the old file formt (i.e.
v-1 B-tree chunk indexes).  Also added a new test that fails when
trying to write v-1 B-tree nodes. Makefile updated to clean up
all test files created by this test.

flushrefresh
Modified the test to use the latest file format.

Tested on:
    jam         (32-bit LE linux)
    koala       (64-bit LE linux)
    ostrich     (64-bit BE linux)
2013-10-10 07:07:56 -05:00
Mike McGreevy
25486d5089 [svn-r19879] Purpose:
Improve portability of flushrefresh test.

Description:

    The flush/refresh API test was hanging on linew because 
    Solaris's 'date' tool does not recognize the "+%s" option,
    which returns time since the epoch on other UNIXes.

    There doesn't seem to be a good way to unify the tools,
    however, Perl can be easily used for this function. I've
    modified configure to always check for the existence of
    Perl (previously it only did so if GNU compilers were being
    used), and the flush/refresh test script now uses perl to
    perform this timestamping functionality rather than date,
    by default. (if Perl is not detected by configure, the
    script will use date as it did prior to this modification).

    Fixed a few other compatibility issues w/ Solaris in passing:
    - fixed 'head' and 'tail' parameters to be more portable
    - avoid passing NULL to an fprintf call in flushrefresh.c

Tested:

    - Tested testflushrefresh.sh on jam, linew, heiwa, liberty, 
      duty, ember, and abe.
2010-12-08 15:56:28 -05:00
Mike McGreevy
a32d6d79a3 [svn-r19739] Purpose:
Adjust flush/refresh tests to allow more time 
    for completion, and fix a bug that caused a 
    race condition between the test script and a 
    process it invokes.

Description:

    Flush/refresh testing slows down considerably
    with multiple (other) processes running in the 
    background, such as the case when -j option is
    supplied to gmake when running the test suite. 
    I've extended the amount of time before the test 
    times out due to not receiving a signal, and 
    modified the script so that the timer now resets 
    after receiving a signal so it is not a cumulative 
    timer for the entire test, but rather only per 
    verification process that the script needs to spawn.

    Additionally, I changed the way the test script
    detected that a signal from a process was ready by
    changing detection from 'file exists' to 'non-empty
    file exists'.

    This test may need to undergo further tweaking once 
    we get a feeling for how well it currently runs in 
    a number of different scenarios, particularly with 
    regards to how the script and the processes it spawns
    communicate with each other.

Tested:

    amani, using 'gmake -j 8 check'.
    h5committest
2010-11-05 16:48:17 -05:00
Quincey Koziol
c7dd9dfb50 [svn-r19716] Description;
Correct use of default API calls to v2 API calls in test code.

Tested on:
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
                w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
                w/C++ & FORTRAN, in production mode
        Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
                w/szip filter, w/threadsafe, in production mode
        Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
2010-11-02 15:17:45 -05:00
Mike McGreevy
a9ca88d156 [svn-r19714] Purpose:
Add API and supporting code to allow single object flushes and refreshes.

Description:

    Added the following API calls:

    H5Dflush / H5Drefresh
    H5Gflush / H5Grefresh
    H5Tflush / H5Trefresh
    H5Oflush / H5Orefresh

    Each H5*flush API flushes the targeted object's metadata, 
    while each H5*refresh evicts all metadata related to an object 
    and reopens the object (re-loading needed metadata from disk).

    New files include src/H5Oflush.c, containing new internal H5O_* 
    functions used by the above API calls. Also, a test file and test 
    script template have been added, test/flushrefresh.c and 
    test/testflushrefresh.sh.in. There is not (yet) a corresponding 
    test script for windows as the current one isn't quite portable.

    Several H5C and H5AC-level functions have been added to support 
    single object flushing and eviction, and the previously committed 
    'metadata tagging' code has been tweaked slightly to pull H5AC__* 
    macros out of H5C.c and a few other fixes as necessary as well.

    Tag globality has been added to better encapsulate the meaning of 
    global tags in the H5C layer of the code. 

Tested:

    h5committested.
2010-11-02 14:00:56 -05:00