Skip to content

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit c9cb326
Author: J. Daniel Smith <[email protected]>
Date:   Fri Jul 14 10:36:07 2023 -0400

    latest from CODA-OSS and NITRO

commit fe6ba2a
Merge: 15d0336 2e60925
Author: J. Daniel Smith <[email protected]>
Date:   Fri Jul 14 10:32:19 2023 -0400

    Merge branch 'main' into develop/sync_externals

commit 15d0336
Author: Dan Smith <[email protected]>
Date:   Mon Jul 10 16:27:24 2023 -0400

    =default doesn't implement the destructor

commit 6109529
Author: Dan Smith <[email protected]>
Date:   Mon Jul 10 16:13:37 2023 -0400

    somewhere a compiler warning got unsuppressed

commit ca98de0
Author: Dan Smith <[email protected]>
Date:   Mon Jul 10 15:27:14 2023 -0400

    latest from CODA-OSS and NITRO

commit 6c6fd14
Merge: d4c971d 34b23e9
Author: Dan Smith <[email protected]>
Date:   Mon Jul 10 15:26:54 2023 -0400

    sync_externals

commit 34b23e9
Author: Dan Smith <[email protected]>
Date:   Mon Jul 10 15:26:48 2023 -0400

    Squashed 'externals/nitro/' changes from 49ec50325..b4ae2d429

    b4ae2d429 match YAML from coda-oss
    176bcaf6d build NITRO.SLN using msbuild (#562)
    85e9043b8 latest from CODA-OSS (#561)

    git-subtree-dir: externals/nitro
    git-subtree-split: b4ae2d4290dcc5482970980ebe85719436990647

commit d4c971d
Merge: d60eddd 3b07146
Author: Dan Smith <[email protected]>
Date:   Mon Jul 10 15:26:44 2023 -0400

    Merge commit '3b07146d57387ad695a7c0745c77c6c891338212' into develop/sync_externals

commit 3b07146
Author: Dan Smith <[email protected]>
Date:   Mon Jul 10 15:26:44 2023 -0400

    Squashed 'externals/coda-oss/' changes from c2fc5fc66..f70b4202f

    f70b4202f account for coda-oss.vcxproj being in other SLNs
    af3faebfc Remove more compiler/code-analysis warnings (#699)
    82be2a6db unittests should work w/o install (#698)
    dbb90a06d add msbuild for coda-oss.sln (#697)
    5a417140a reduce compiler warnings (#696)
    288619dfa all modules now part of coda-oss.vcxproj (#695)

    git-subtree-dir: externals/coda-oss
    git-subtree-split: f70b4202f19f260941a0245e41301ae232348fc7

commit d60eddd
Author: Dan Smith <[email protected]>
Date:   Mon Jul 10 15:26:36 2023 -0400

    latest from CODA-OSS and NITRO

commit e275c07
Merge: d606c61 417ea3f
Author: Dan Smith <[email protected]>
Date:   Mon Jul 10 15:26:03 2023 -0400

    Merge branch 'main' into develop/sync_externals

commit d606c61
Merge: 36beb99 8e847cb
Author: Dan Smith <[email protected]>
Date:   Wed Jul 5 14:01:51 2023 -0400

    Merge branch 'main' into develop/sync_externals

commit 36beb99
Author: Dan Smith <[email protected]>
Date:   Wed Jul 5 13:48:37 2023 -0400

    sync_externals

commit 11665af
Merge: 388bdad 9a22788
Author: Dan Smith <[email protected]>
Date:   Wed Jul 5 13:48:19 2023 -0400

    sync_externals

commit 9a22788
Author: Dan Smith <[email protected]>
Date:   Wed Jul 5 13:48:06 2023 -0400

    Squashed 'externals/nitro/' changes from cee9feb42..49ec50325

    49ec50325 use new "PlatformToolkit" special environment variable (#560)
    6c06e3711 latest from CODA-OSS (#559)

    git-subtree-dir: externals/nitro
    git-subtree-split: 49ec50325d0dcdef40b63dd440afdb82d6b6d379

commit ea623b4
Author: Dan Smith <[email protected]>
Date:   Wed Jul 5 13:48:02 2023 -0400

    Squashed 'externals/coda-oss/' changes from 54033e70e..c2fc5fc66

    c2fc5fc66 add more projects to coda-oss-lite.vcxproj (#694)
    ceb86c186 support $(PlatformToolset) as a "special" environment variable (#693)
    d78a8595a OS::getSIMDInstructionSet() utility (#692)
    2d2df467d fix `python3 waf dumplib`

    git-subtree-dir: externals/coda-oss
    git-subtree-split: c2fc5fc660c2794d77fac2b71cf0dfae76c22c3e

commit 388bdad
Merge: f47cbbc ea623b4
Author: Dan Smith <[email protected]>
Date:   Wed Jul 5 13:48:02 2023 -0400

    Merge commit 'ea623b4ee1de1651418d5d4424201df95915dca8' into develop/sync_externals

commit f47cbbc
Author: Dan Smith <[email protected]>
Date:   Wed Jul 5 13:47:40 2023 -0400

    latest from CODA-OSS and NITRO

commit f25c53a
Merge: c747f32 d2221ad
Author: Dan Smith <[email protected]>
Date:   Wed Jul 5 13:47:05 2023 -0400

    Merge branch 'main' into develop/sync_externals

commit c747f32
Author: Dan Smith <[email protected]>
Date:   Mon Jun 19 14:30:50 2023 -0400

    latest from CODA-OSS and NITRO

commit b142ec4
Merge: 2829f93 3d4e554
Author: Dan Smith <[email protected]>
Date:   Mon Jun 19 14:30:15 2023 -0400

    sync_externals

commit 3d4e554
Author: Dan Smith <[email protected]>
Date:   Mon Jun 19 14:30:07 2023 -0400

    Squashed 'externals/nitro/' changes from 3f01809fa..cee9feb42

    cee9feb42 latest from CODA-OSS (#558)

    git-subtree-dir: externals/nitro
    git-subtree-split: cee9feb424b0f9c1f11f37f67a1795b3cc5e8dd1

commit 2829f93
Merge: e47ccf3 12995e6
Author: Dan Smith <[email protected]>
Date:   Mon Jun 19 14:29:10 2023 -0400

    Merge branch 'main' into develop/sync_externals

commit e47ccf3
Author: Dan Smith <[email protected]>
Date:   Mon Jun 19 14:19:10 2023 -0400

    latest from CODA-OSS

commit 04090c4
Merge: cc60094 ac1ccde
Author: Dan Smith <[email protected]>
Date:   Mon Jun 19 14:18:41 2023 -0400

    sync_externals

commit ac1ccde
Author: Dan Smith <[email protected]>
Date:   Mon Jun 19 14:18:34 2023 -0400

    Squashed 'externals/nitro/' changes from c8ecbe9ae..3f01809fa

    3f01809fa latest from coda-oss (#557)
    471fb3fc1 Update test_j2k_loading++.cpp
    b12caf2fc latest from CODA-OSS (#556)
    0cd432624 use sys::make_span (#555)
    05dae18a3 patch to build other projects
    8f974e995 NITRO-2.11.3 (#554)
    870aa6afd update to coda-oss 2023-06-05 (#553)
    2fd7a0bfa latest from coda-oss (#552)
    0eecce004 invoke() utility to reduce code duplication (#550)
    59fb02fe9 latest from coda-oss (#551)
    9fbf2b7b8 Fill out adapter free block which is used for nitf decompression (#549)
    089ba0b5b latest from coda-oss
    3b52f0025 latest from coda-oss (#547)
    90c6263e2 latest from coda-oss (#544)
    90d513ac5 latest from coda-oss (#543)

    git-subtree-dir: externals/nitro
    git-subtree-split: 3f01809fae7d471aa0f1594fc5eec1e3111cd710

commit 1ceb8e3
Author: Dan Smith <[email protected]>
Date:   Mon Jun 19 14:18:30 2023 -0400

    Squashed 'externals/coda-oss/' changes from e87c32b4d..54033e70e

    54033e70e Merge branch 'main' into feature/complex_short
    3c63f9f65 std::numbers from C++20 (#691)
    892dd0e00 ComplexInteger and ComplexReal to better match existing naming conventions (#690)
    b3872181e match coda-oss naming conventions (#688)
    704d6867f beef-up our complex type (#687)
    47c1c1cd6 check is_absolute() for URLs (#686)
    c042373e1 be sure our Path::isAbolute() matches std::filesystem::path::absolute() (#684)
    ad10286bc volatile is about "special" memory, not threading (#685)
    f4d42005f fix build error in NITRO
    ff11a5557 keep using std::complex<short> for now (#682)
    c88b9c053 types::complex<T> (#681)
    d1244a080 don't need our own make_unique in C++14 (#680)
    aeec0131c assert()s for mem::CopyablePtr (#679)
    72b0ebd60 add types::complex_short (#678)
    932130a58 patch to build other projects
    c00c1f203 coda-oss release 2023-06-06 (#677)
    ef54bbcd5 remove more compiler warnings (#676)
    dadfc5ce6 distinguish between byte-swapping a buffer and single value (#674)
    90187f6cd more xml.lite tweaks for SIDD-3.0/ISM (#675)
    eb9960772 stronger type-checking for byteSwap() (#673)
    ff4f820ed xml.lite tweaks to support SIDD 3.0 ISM (#672)
    b1de8c0e5 std::byte should be a unique type (#671)
    c05bf9a02 allow enums to be byte-swapped too
    1f9fd88d6 remove spurious
    47684c45b byteSwap now uses byte buffers (#670)
    cbc659db2 add swapBytes() utility from SIX (#669)
    891481b64 simplify byte-swapping (#668)
    540ae763e more byteSwap() tweaks
    0774c03c4 threaded byteSwap() (#667)
    d156370d3 swapping a single-byte value makes no sense
    c120e3255 be sure parameter is used to avoid compiler warning
    e85ec9331 --output-on-failure for CTest (#666)
    e80376197 turn off "there is no warning number" warning
    c5f0a5d15 A C-string may not be NULL-terminated (#665)
    0c5eb29ae use platform-specific routines for byteSwap() (#664)
    0b7d581fa remove transform_async() (#663)
    f6489b6be Merge branch 'main' into feature/xml.lite_tweaks
    836c426a2 use function-pointers so that isConsoleOutput is only checked once
    56e3c45b1 move depthPrint() functionality into non-member function in preparation for future changes
    ddcd26d97 Merge branch 'main' into feature/xml.lite_tweaks
    69cc0e506 use the more rigorous create_and_check_datatype()
    9efb87558 Merge branch 'main' into feature/hdf5
    4d2f2f417 more HighFive unittests (#662)
    14191a844 HighFive::create_datatype() goes from C++ to HighFive
    98583473f utility routines to read string attributes
    1fa75ce81 use the C API to read a string attribute
    71e7b69f5 still can't figure out how to read a string attribute :-(
    e96f37a69 test reading the file attributes
    a25244519 getAttribute() unittest
    8f12a3000 getDataType() unittest
    857ff0af3 HighFive utility routines (#661)
    1d687db57 writeDataSet() utility overload
    106aa6894 sigh ... H5Easy::dump() fill fails on Windows/WAF :-(
    2641b60b2 Merge branch 'main' into feature/hdf5
    35c19e7e8 change actions to @V3 (#660)
    212bbd3a3 works on local machine, but not build server ... ?
    7125118b0 dump of 1D vector doesn't work :-(
    c704db435 sigh ... WAF build still failing :-(
    01aae4616 does dump() of a 1D vector work?
    76a53c813 comment-out H5 writing :-(
    0f0e19aff test_highfive_dump()
    cb8f73795 trying to get highfive_dump() unittest working w/Windows-WAF
    6584a264a does test_highfive_create() work?
    cde6147ce tweak HighFive wrappers (#659)
    316566854 Revert "trying HighFive "write" unittests again"
    a9ec24ca4 trying HighFive "write" unittests again
    585ad49a5 tweak names of utility routines
    4c91a4d97 make it easier to read a std::vector and std::vecotr<std::vector>
    0217ffa26 readDataSet() now works for 1D data
    95e8973f2 trying to get hdf5::lite::load() working
    4d294611d "const" correctness
    5e6305c3f fix load_complex()
    4a134dc5f start work on utility routines to read complex data from HDF5
    9d76a7f41 Merge branch 'main' into feature/hdf5
    8f9667a24 whitepsace
    ebd3fc99e Merge branch 'main' into feature/hdf5
    40091b069 comment-out writing tests for now ... need to figure our WAF bulid failure
    935aa3459 be sure the dataset has real data
    114b9bf33 update release notes
    bd9c0b26c tweak HighFive utility routines
    acda1ef57 turn off diagnostics around expected failures
    22a748840 readDataSet() utility routine for HighFive
    bd88a8c25 HighFive writeDataSet() utility to work with our SpanRC
    6142f5b33 use HighFive routines to write a HDF5 file
    5bbf1abaf Use HiveFive routines to get info about the file
    84fbc8378 duplicate unittests with H5Easy
    f1f054c03 Merge branch 'main' into feature/hdf5
    9b63ca470 fix directory names
    f6f826689 fix directory names
    7aeb82c33 Merge branch 'main' into feature/hdf5
    d028baaeb hook up HighFive header-only library (#653)
    3083b0a31 Revert "HighFive 2.6.2"
    246985a7f Revert ""build" HighFive HDF5 library"
    a8b75a586 Revert "turn off HighFive Boost support"
    ec68d5f83 Revert "Add HighFive unittests"
    f1f85b9e7 Revert "get test_high_five_base more-or-less compiling"
    5ea634ee1 Revert "more work on getting HighFive unittests to build"
    ecc45433c more work on getting HighFive unittests to build
    bb194788a get test_high_five_base more-or-less compiling
    d42bde000 Add HighFive unittests
    ddc86bb32 turn off HighFive Boost support
    b255122d4 "build" HighFive HDF5 library
    396cc3ef2 HighFive 2.6.2
    5e5f9d9c0 Merge branch 'main' into feature/hdf5
    ee938b4a5 changes from SIX
    bb764df90 Merge branch 'main' into feature/xml.lite_tweaks
    de2a24380 make derived classes 'final' if possible
    14e19bcd2 Change xml lite function to virtual (#645)
    8f42ac8e9 Merge branch 'main' into feature/xml.lite_tweaks
    18ad90645 hdf5Write unittest
    3462e1179 createFile() and writeFile() overloads
    ecee81d53 fix typos
    197eecfa6 sketch-out hdf5::lite::writeFile()
    bd2311795 use SpanRC for writeFile(), not yet implemented
    ea9af7510 simple SpanRC to hold a 2D-size and pointer
    027c19ee8 createFile() unittest
    1f9d07ecb hook up createFile()
    8c7e4473f start hooking up HDF5 writing
    146e0bea3 Merge branch 'main' into feature/hdf5
    88ca9fcb7 Merge branch 'main' into feature/hdf5
    42b604b46 Squashed commit of the following:
    10ee602c2 Merge branch 'main' into feature/hdf5
    67aa42b69 restore changes from "main"
    8bbfcbfbf unittests can be simplified to match fewer "view" classes
    126bb802e Merge branch 'main' into feature/hdf5
    3f8ba7a42 again, don't need a class just to convert from std::vector<> to std::span<>
    24c2b489c Squashed commit of the following:
    2703c119d Squashed commit of the following:
    9d5228a2b don't need an entire class just to convert a std::vector<> into std::span<>
    51bc931dc Merge branch 'main' into feature/hdf5
    a84f25816 Squashed commit of the following:
    c4d2ed696 add missing #include guards, fix type in existing #include guard
    d541525a0 use a single ComplexViewConstIterator for all views
    86e6a459f CODA_OSS_disable_warning causes GCC errors :-(
    5d4b9c2cb only need an custom iterator for ComplexSpansView
    d9f0fb128 hook up iterators
    b9329e4db initial pass at a ComplexViewConstIterator
    635238873 remove compiler warning about unused "constexpr" variables
    b39f6096f use the casing from H5 to make copy/pasting code slightly easier
    0887b13eb Merge branch 'main' into feature/hdf5
    bd07df1ca Consistent casing for Dataset, Datatype, Dataspace
    7acd30ee2 tweak hdf5.lite dependencies
    38ab914df Jupyter notebook for creating H5 files
    95a040e0b _small.h5 is now (correctly) FLOAT32
    107e7c487 make a simple values() member function to avoid template magic
    e1feca919 use TEST_SPECIFIC_EXCEPTION macro instead of try/catch
    738333688 readDatasetT() now throws for the wrong buffer type
    6b2cc2529 Merge branch 'feature/hdf5' of github.com:mdaus/coda-oss into feature/hdf5
    310f8fd3d can't get template magic right for copy_axis()
    86b306d59 stepping through copy ctors in the debugger is annoying
    f243e92d6 trying to make wrong type of buffer fail
    2b10d9652 read in new sample file
    a28e59d8c help the compiler with type deduction
    49bf5e9bc nested_complex_float_data_small.h5
    e029325fc utility routines to "deconstruct" and array of std::complex
    dede3bd39 Merge branch 'main' into feature/hdf5
    904b1ef5e tweak class names, make_() and copy() utility routines
    8237b9efb make it harder to pass the wrong types to ComplexViews
    4d9aeda2c ComplexArrayView and ComplexParallelView utility classes
    f5e367dfa test std::span<const std::complex<float>>
    a4a2844f2 read in the nested "i" and "r" data
    115615265 sample file has subgroups
    8e1b7869a Merge branch 'feature/hdf5' of github.com:mdaus/coda-oss into feature/hdf5
    9f4232a1d update sample H5 file
    8c55db73a walk through HDF5 sub-groups
    7775ed9c4 Update 123_barfoo_catdog_cx.h5
    677975d7c Matlab code to create sample H5 file
    a0e7dfe07 Update test_hdf5info.cpp
    0b67e1602 pass __FILE__ and __LINE__ from calling site for a more accurate exception message
    86a677321 skeleton for more sample data
    85f79b099 Merge branch 'main' into feature/hdf5
    18088e942 Merge branch 'main' into feature/hdf5
    3a1d17692 Merge branch 'main' into feature/hdf5
    1755c69d7 Merge branch 'main' into feature/hdf5
    9ad015432 No more "11" suffix on exception names
    c20d96251 Squashed commit of the following:
    c88cee999 other values to be filled-in
    bca4a4ecd incorporation NamedObject from HDF5 docs
    61fa68f72 groupInfo()
    460e7d766 datasetInfo()
    14eb9b764 start filling in DatasetInfo
    afe5f1c3a start to fill in DatasetInfo
    77a968c72 start filling in GroupInfo
    d81bcdfd9 openGroup() to open groups (loc)
    a0cd29469 comment-out "dataset" unittest for now
    86e006024 begin filling in FileInfo
    366dda6ab a return_type_of utility is needed to deduce the return type
    e21928263 explicitly pass return type to template
    4937ccd11 template to reduce boilerplate when calling try_catch_H5Exceptions
    b3b5ebde7 use new exception utility routines
    ea1c03ef0 put exception handling/conversion in a utility routine
    819a99d39 utility routine for exception handling
    6f34eea97 put utilities in a separate file for easier reuse
    fcbde4f24 break utility routines into smaller pieces for easier reuse
    52358ea8a WIN32 no longer automatically defined?
    5a4286472 Revert "build HDF5 with C89"
    680e599e9 build HDF5 with C89
    a87a07121 Merge branch 'main' into feature/hdf5
    8447c1a90 Revert "sym-links instead of copying files"
    db3b5e12b Merge branch 'main' into feature/xml.lite_tweaks
    fb60b5696 Merge branch 'main' into feature/hdf5
    5110a5cc8 Comments about _u and _q
    1a937d32c Merge branch 'main' into feature/xml.lite_tweaks
    fa06f04d7 get ready for hdf5.lite enhancdements
    b040c7c43 sym-links instead of copying files
    aa431bb47 use _u for xml::lite::Uri
    3d0c6d58c fix case-sensitive #include filename
    93dcd0e52 operator() for getElementByName()
    75a93af85 more operator[] overloads to make attribute management easier
    4ab8216f8 user-defined string literals to remove some noise around xml::lite::QName
    f82f0b0fc Merge branch 'main' into feature/xml.lite_tweaks
    ae30e3644 Merge branch 'feature/xml.lite_tweaks' of github.com:mdaus/coda-oss into feature/xml.lite_tweaks
    ffdd9beb0 simplify attribute creation
    9bf5414f5 simplify attribute creation
    82d7a4e95 SWIG gets confused about namespaces
    7a61d0741 fix bug on Element ctor uncovered by unittest
    fdd7e58c1 QName is also in the xerces namespace which confuses SWIG bindings
    a325b7053 operator+=() overload for addChild
    daf30e6c0 Merge branch 'feature/xml.lite_tweaks' of github.com:mdaus/coda-oss into feature/xml.lite_tweaks
    b887d2b47 provide overloads for Element& rather than creating new "reference" types
    1fa6bba38 rename test_xmleasy.cpp
    7c8c9e0f1 += overload
    850da6f63 overload for std::string
    4547fc5a7 use UIT-8 strings for characterData
    4723462a3 convenient addChild() overloads
    e48720753 copy over ElementReference from xml.easy
    a4ca30a0d Merge branch 'main' into feature/xml.lite_tweaks
    6ae9f0b71 Revert "check-in of new xml.easy (to move code between computers)"
    f7466a6d7 Revert "simple routines for single element"
    a5490230d Revert "make some operators simplier ways of calling functions"
    c9a25630a Revert "get document creation working"
    8af8710b0 Revert "free functions instead of member functions"
    16c3847cb Revert "ElementReference distinct from Element"
    7d68e156f Revert "ElementMutableReference"
    00eb2a282 Merge branch 'main' into feature/xml.lite_tweaks
    a42969c1f ElementMutableReference
    a20ae9355 ElementReference distinct from Element
    14eeeea0b free functions instead of member functions
    4aae014b3 get document creation working
    883569269 make some operators simplier ways of calling functions
    053bd1212 simple routines for single element
    8bf701a2e check-in of new xml.easy (to move code between computers)
    41f959051 unittests for creating XML documents from scratch
    9752d50ae Merge branch 'main' into feature/xml.lite_tweaks
    1531d5709 by default, don't validate strings passed to Uri()
    46d13d4bf Merge branch 'master' into feature/xml.lite_tweaks
    39b547d32 remove more vestiges of Expat and LibXML
    ec8274d52 remove LibXML and Expat as they're no longer used/supported.
    20eeefeef Merge branch 'master' into feature/xml.lite_tweaks
    95074b9b1 update for newer Intel compiler
    7024f71e1 Merge branch 'master' into feature/xml.lite_tweaks
    57b1cbc83 Merge branch 'master' into feature/xml.lite_tweaks
    4b67561c3 remove validate() overload that nobody is using
    fa15f1e5d Squashed commit of the following:
    1484a9090 test the new validate() API
    470da70fb hookup StringStreamT routines
    2cddf2504 begin hooking up validate() overloads
    1b5d910f3 overload validate() for UTF-8 and Windows-1252
    03309b8c9 Squashed commit of the following:
    b72c6c5bf older compiler doesn't like our make_unique
    af8f00307 validate UTF-8 XML on Linux
    211188613 unit-test for LEGACY XML validation
    3c1169d2b Squashed commit of the following:
    3afff19ca std::filesystem::path for FileInputStreamOS
    908d452f8 WIP: validate all of our sample XML files
    00f9bb16b validate against a XML schema
    243d8c356 Merge branch 'master' into feature/xml.lite_tweaks
    2815d707d fix to work with SWIG bindings. :-(
    460862132 trying (again) to remove vestiages of old code
    e3c83a858 Revert "new code should use UTF-8"
    811207c92 new code should use UTF-8
    0ffd835f9 Squashed commit of the following:
    1e7e03ded Merge branch 'master' into feature/xml.lite_tweaks
    c1d806aff Merge branch 'master' into feature/xml.lite_tweaks
    850d3c811 str::strip() that can be easier to use than str::trim()
    580ba9c8c explicitly =delete move
    2b39831a8 Squashed commit of the following:
    39eebdc23 Merge branch 'master' into feature/xml.lite_tweaks
    9adf86cba force calling new UTF-8 write() routines
    ea61b6204 Merge branch 'master' into feature/xml.lite_tweaks
    8a34583fa overload to take schemaPaths as filesystem::path
    8671b442f parse XML embedded in a binary file
    ec4a902f1 updates from xerces.lite
    80dc4d963 updates from xerces.lite
    549766d6c Attributes::contains() no longer catches an exception
    8a645ceac need "sys/" when building in other environments
    36af08269 super-simple URI validation
    78ef28a3e SWIG bindings are a PITA! :-(
    e9cba8491 SWIG needs help with Uri
    8a8d8dc07 another routines used by pre-build SWIG bindings
    818e1ec5d pre-build SWIG bindings use getElementByTagName() member function
    067cac5d8 old compiler gets confused on unadorned QName
    ba92c0ae7 more use of Uri and QName
    446c7d17a use QName in new code
    d6f8b0c83 more direct use of QName
    90fff1c73 use xml::lite::QName instead of tuple<string, string>
    646cbb5ed more direct use of QName and Uri
    ba589ea3b make QName more robust
    bab0ee8b5 createElement() -> addNewElement()
    e3a145747 grab changes from six-library
    32285e95c Merge branch 'master' into feature/xml.lite_tweaks
    9f79f0bf6 Merge branch 'master' into feature/xml.lite_tweaks
    a12bbc32c make it easier to create new Elements with a value
    fc9967f98 make it easy for callers to addChild() keep a reference to the Element
    4627766b7 be sure test_xmlparser works in "externals" of other projects
    bf2276396 "private" is part of the name-mangling
    fad92bcc8 making sure copy-ctor is implemented
    f90fdcead consolidate common XML test code
    9fc53f2d5 use str:: utility for casting
    6da6f794b still trying to find the right macro for SWIG
    0c1b86c56 still trying to fix SWIG
    fdc6fc9bd trying to fix SWIG build error
    7835e8c27 SWIG needs copy-ctor
    585695942 disable copy/assignment for Element, it's probably almost always wrong
    391fed613 fix double-delete caused by copying
    61790fe69 retry parsing XML with Windows-1252 if first parse() fails
    63cffac59 change string_encoding to match coda-oss style of PascalCase
    010479bbe read an XML file we know is wrongly encoded as Windows-1252
    9a0505062 more references instead of pointers
    2d44b6951 Reading Windows-1252 w/o "encoding" fails
    63dc7b076 read Windows-1252 too
    c9434c9cb test as UIT-8 too
    f310ccf0c get reading from UTF-8 XML working on Windows
    1fa39c2be get testReadUtf8XmlFile working on Linux
    1a83cd815 sys::Path is too much trouble right now
    ed60aa22c unit-test to read XML from a file
    a9336db7c Squashed commit of the following:
    0825beb0d Merge branch 'master' into feature/xml.lite_tweaks
    c618489be Merge branch 'master' into feature/xml.lite_tweaks
    e8e4b8fe1 determine string_encoding based on platform
    1f43bcfc2 create a new Element by using the platform to determine "characterData" encoding
    961bef66b Merge branch 'master' into feature/xml.lite_tweaks
    e9798a5cb fix static_assert()
    6f7772874 Merge branch 'master' into feature/xml.lite_tweaks
    b98d4f5a9 Merge branch 'master' into feature/xml.lite_tweaks
    1b5abba2a The (old) version of SWIG we're using doesn't like certain C++11 features.
    53bdeabaf Merge branch 'master' into feature/xml.lite_tweaks
    60cf8ae80 "" doesn't work with decltype() in older C++
    97e72477a reduce getValue() overloads by making "key" a template argument
    5e6373e55 reduce code duplication
    f9e7cfeee provide castValue<T> instead of getValue(T&)
    cbd0bd8f2 castValue<T> throws instead of returning a bool like getValue(T&)
    87c7514fc Merge branch 'master' into feature/xml.lite_tweaks
    10cc61223 make getElement*() consistent for zero or >1 results
    f5b137e3c Merge branch 'master' into feature/xml.lite_tweaks
    1765efc62 allow clients to specify toType() and toString() for getValue() and setValue()
    df8b746e1 allow clients to specify their own toType/toString routines
    66702726a Merge branch 'master' into feature/xml.lite_tweaks
    6956311f1 Merge branch 'master' into feature/xml.lite_tweaks
    d505f3593 Merge branch 'master' into feature/xml.lite_tweaks
    fbd106115 catch a BadCastException and return false from getValue()
    3a78377b5 use a template to reduce duplicated code
    0ad4b8606 Merge branch 'master' into feature/xml.lite_tweaks
    a848aa3a2 get & set the characer data as a type
    f3ee1ee12 utility routines to set an attribute value
    595227683 templates to get an attribute value convert to a specific type
    06639227b miised a change in last commit
    1aa458ef8 add getValue() overloads that return true/false rather than throwing
    faa6d3075 added getElementByTagName() overloads as that's a very common use-case

    git-subtree-dir: externals/coda-oss
    git-subtree-split: 54033e70e353da94340dd7b96d0b1c6652308952

commit cc60094
Merge: fec3755 1ceb8e3
Author: Dan Smith <[email protected]>
Date:   Mon Jun 19 14:18:30 2023 -0400

    Merge commit '1ceb8e3ffb55a240085250cfde3f4d1ab7ef0b04' into develop/sync_externals

commit fec3755
Author: Dan Smith <[email protected]>
Date:   Mon Jun 19 14:18:05 2023 -0400

    latest from CODA-OSS
  • Loading branch information
JDanielSmith committed Jul 14, 2023
1 parent 5105e3e commit 33adbd7
Show file tree
Hide file tree
Showing 120 changed files with 1,374 additions and 666 deletions.
41 changes: 33 additions & 8 deletions externals/coda-oss/.github/workflows/build_unittest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,7 @@ jobs:
cd ..
cd target-Debug
cmake --build . --config Debug -j
- name: test
# should run w/o install
- name: test # should run w/o install
run: |
cd target-Release
ctest -C Release --output-on-failure
Expand All @@ -52,17 +51,43 @@ jobs:
cd target-Debug
cmake --build . --config Debug --target install
cd ..
build-msbuild-windows:
strategy:
matrix:
os: [windows-latest]
platform: [x64]
configuration: [Debug] # Debug turns on more compiler warnings
name: ${{ matrix.os }}-msbuild
runs-on: ${{ matrix.os }}

steps:
- uses: actions/checkout@v3
- name: configure
run: |
ls env:
mkdir out
cd out
cmake .. -DCMAKE_INSTALL_PREFIX=install\${{ matrix.platform }}-${{ matrix.configuration }} -DENABLE_PYTHON=OFF
- name: build
run: |
cd out
cmake --build . --config ${{ matrix.configuration }} -j
cmake --build . --config ${{ matrix.configuration }} --target install
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.1
uses: microsoft/setup-msbuild@v1 # https://github.com/marketplace/actions/setup-msbuild
with:
msbuild-architecture: x64
- name: msbuild
run: |
msbuild coda-oss.sln /p:configuration=Release
msbuild coda-oss.sln /p:configuration=Debug
#- name: mstest
# run: |
# mstest /testcontainer:${RUNNER_WORKSPACE}\coda-oss\x64\Debug\UnitTest.dll
msbuild coda-oss.sln /p:configuration=${{ matrix.configuration }}
# Can't figure out how to make this work :-(
#- name: vstest
# uses: microsoft/[email protected] # https://github.com/marketplace/actions/vstest-action
# with:
# testAssembly: UnitTest.dll
# searchFolder: D:\a\nitro\nitro\${{ matrix.platform }}\${{ matrix.configuration }}
# runInParallel: true

build-linux-cmake:
strategy:
Expand Down
10 changes: 5 additions & 5 deletions externals/coda-oss/ReleaseNotes.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,16 @@
* wrap common "file open" routines (e.g., `fopen()`) to support `sys::expandEnvironmentVariables()`.
* add header-only [HighFive](https://github.com/BlueBrain/HighFive) HDF5-wrapper library.
* Added a handful of [HighFive](https://github.com/BlueBrain/HighFive) utility routines.
* `mt::transform_async()` removed, it doesn't match C++17 techniques.'
* `mt::transform_async()` removed, it doesn't match C++17 techniques.
* Revamp `sys::byteSwap()` for improved type-safety and
[better performance](https://devblogs.microsoft.com/cppblog/a-tour-of-4-msvc-backend-improvements/).
* Added case-insensitive string comparison utilties: `str::eq()` and `str::ne()`;
* Added case-insensitive string comparison utilities: `str::eq()` and `str::ne()`;
`xml::lite::Uri`s compare case-insensitive.

## [Release 2022-12-14](https://github.com/mdaus/coda-oss/releases/tag/2022-12-14)
* removed remaining vestiges of `std::auto_ptr`, provide `mem::AutoPtr` for the tiny handful of
places (e.g., SWIG bindings) that still need copying.
* `xml::lite::Element` overloads to make creting new XML documents easier; see unittests for examples.
* `xml::lite::Element` overloads to make creating new XML documents easier; see unittests for examples.
* try even harder to find unittest files in various scenarios.
* build *hdf5.lite* with **waf**.
* New `--optz=fastest-possible` (**waf** only) which adds
Expand All @@ -40,8 +40,8 @@
* The [HDFGroup](https://hdfgroup.org/)s [HDF5 library](https://github.com/HDFGroup/hdf5) is built
and installed; a simple (and very incomplete!) wrapper is provided, this is at the "hello world!" stage.
* A few **cli** routines have been tweaked to make unit-testing easier.
* Utilitiy routines for finding various files when unit-testing.
* Removed C++14 work-arounds needed in C++11. Legacy C++ exception specificatons removed.
* Utility routines for finding various files when unit-testing.
* Removed C++14 work-arounds needed in C++11. Legacy C++ exception specifications removed.
* Rebuild `waf` for FIPS error; added more debug options.

## [Release 2022-08-30](https://github.com/mdaus/coda-oss/releases/tag/2022-08-30)
Expand Down
42 changes: 2 additions & 40 deletions externals/coda-oss/UnitTest/CppUnitTestAssert.cpp
Original file line number Diff line number Diff line change
@@ -1,43 +1,5 @@
#include "pch.h"
#include "TestCase.h"

#include "str/EncodedStringView.h"

using namespace Microsoft::VisualStudio::CppUnitTestFramework;

// EQUALS_MESSAGE() wants ToString() specializations (or overloads) for our types, which is a nusiance.
// This hooks up our existing str::toString() into the VC++ unit-test infrastructure

// C++ hack to call private methods
// https://stackoverflow.com/a/71578383/8877

using FailOnCondition_t = void(bool condition, const unsigned short* message, const __LineInfo* pLineInfo); // declare method's type
using GetAssertMessage_t = std::wstring(bool equality, const std::wstring& expected, const std::wstring& actual, const wchar_t *message); // declare method's type
template <FailOnCondition_t fFailOnCondition, GetAssertMessage_t fGetAssertMessage>
struct caller final // helper structure to inject call() code
{
friend void FailOnCondition(bool condition, const unsigned short* message, const __LineInfo* pLineInfo)
{
fFailOnCondition(condition, message, pLineInfo);
}

friend std::wstring GetAssertMessage(bool equality, const std::wstring& expected, const std::wstring& actual, const wchar_t *message)
{
return fGetAssertMessage(equality, expected, actual, message);
}
};
template struct caller<&Assert::FailOnCondition, &Assert::GetAssertMessage>; // even instantiation of the helper

void FailOnCondition(bool condition, const unsigned short* message, const __LineInfo* pLineInfo); // declare caller
void test::Assert::FailOnCondition(bool condition, const unsigned short* message, const __LineInfo* pLineInfo)
{
::FailOnCondition(condition, message, pLineInfo); // and call!
}

std::wstring GetAssertMessage(bool equality, const std::wstring& expected, const std::wstring& actual, const wchar_t *message); // declare caller
std::wstring test::Assert::GetAssertMessage(bool equality, const std::string& expected, const std::string& actual, const wchar_t *message)
{
const str::EncodedStringView vExpected(expected);
const str::EncodedStringView vActual(actual);
return ::GetAssertMessage(equality, vExpected.wstring(), vActual.wstring(), message); // and call!
}
// Can't get this to build in the **coda-oss** project.
#include "sys/source/CppUnitTestAssert_.cpp_"
137 changes: 1 addition & 136 deletions externals/coda-oss/UnitTest/TestCase.h
Original file line number Diff line number Diff line change
@@ -1,138 +1,3 @@
#pragma once

#include <stdint.h>
#include <string>

#include "CppUnitTest.h"
#include <include/TestCase.h>
#include <str/EncodedStringView.h>

#undef TEST_CHECK
#undef TEST_ASSERT
#undef TEST_ASSERT_NULL
#undef TEST_ASSERT_NOT_NULL
#undef TEST_ASSERT_TRUE
#undef TEST_ASSERT_FALSE
#undef TEST_MAIN
#undef TEST_CASE
#define TEST_CHECK(X)
#define TEST_MAIN(X)
#define TEST_ASSERT_NULL(X) testName, Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsNull(X)
#define TEST_ASSERT_NOT_NULL(X) testName, Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsNotNull(X)
#define TEST_ASSERT_TRUE(X) testName, Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsTrue(X)
#define TEST_ASSERT_FALSE(X) testName, Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsFalse(X)
#define TEST_ASSERT(X) TEST_ASSERT_TRUE(X)
#define CODA_OSS_testMethod_(X) testMethod ## _ ## X
#define TEST_CASE(X) TEST_METHOD(X) { CODA_OSS_testMethod_(X)(#X); } void CODA_OSS_testMethod_(X)(std::string testName)

namespace test
{
struct Assert final
{
static void FailOnCondition(bool condition, const unsigned short* message, const Microsoft::VisualStudio::CppUnitTestFramework::__LineInfo* pLineInfo);
static std::wstring GetAssertMessage(bool equality, const std::string& expected, const std::string& actual, const wchar_t *message);
};
#define CODA_OSS_equals_message_(expected, actual, message) reinterpret_cast<const unsigned short*>(test::Assert::GetAssertMessage(true, test::toString(expected), test::toString(actual), message).c_str())
#define CODA_OSS_not_equals_message_(notExpected, actual, message) reinterpret_cast<const unsigned short*>(test::Assert::GetAssertMessage(false, test::toString(notExpected), test::toString(actual), message).c_str())
#define CODA_OSS_message_(message) reinterpret_cast<const unsigned short*>(test::Assert::GetAssertMessage(false, "", "", message).c_str())

// see Assert::AreEqual<>
template<typename TExpected, typename TActual>
inline void diePrintf_eq(const TExpected& expected, const TActual& actual,
const wchar_t* message = NULL, const Microsoft::VisualStudio::CppUnitTestFramework::__LineInfo* pLineInfo = NULL)
{
Assert::FailOnCondition(expected == actual, CODA_OSS_equals_message_(expected, actual, message), pLineInfo);
}

// see Assert::AreNotEqual<>
template<typename TExpected, typename TActual>
inline void diePrintf_ne(const TExpected& notExpected, const TActual& actual,
const wchar_t* message = NULL, const Microsoft::VisualStudio::CppUnitTestFramework::__LineInfo* pLineInfo = NULL)
{
Assert::FailOnCondition(notExpected != actual, CODA_OSS_not_equals_message_(notExpected, actual, message), pLineInfo);
}

template <typename TX1, typename TX2>
inline void diePrintf_ge(const TX1& X1, const TX2& X2,
const wchar_t* message = NULL, const Microsoft::VisualStudio::CppUnitTestFramework::__LineInfo* pLineInfo = NULL)
{
Assert::FailOnCondition(X1 >= X2, CODA_OSS_message_(message), pLineInfo);
}
template <typename TX1, typename TX2>
inline void diePrintf_gt(const TX1& X1, const TX2& X2,
const wchar_t* message = NULL, const Microsoft::VisualStudio::CppUnitTestFramework::__LineInfo* pLineInfo = NULL)
{
Assert::FailOnCondition(X1 > X2, CODA_OSS_message_(message), pLineInfo);
}
template <typename TX1, typename TX2>
inline void diePrintf_le(const TX1& X1, const TX2& X2,
const wchar_t* message = NULL, const Microsoft::VisualStudio::CppUnitTestFramework::__LineInfo* pLineInfo = NULL)
{
Assert::FailOnCondition(X1 <= X2, CODA_OSS_message_(message), pLineInfo);
}
template <typename TX1, typename TX2>
inline void diePrintf_lt(const TX1& X1, const TX2& X2,
const wchar_t* message = NULL, const Microsoft::VisualStudio::CppUnitTestFramework::__LineInfo* pLineInfo = NULL)
{
Assert::FailOnCondition(X1 < X2, CODA_OSS_message_(message), pLineInfo);
}

}
#undef CODA_OSS_test_diePrintf_eq_
#undef CODA_OSS_test_diePrintf_not_eq_
#define CODA_OSS_test_diePrintf_eq_(X1, X2) testName, ::test::diePrintf_eq(X1, X2)
#define CODA_OSS_test_diePrintf_not_eq_(X1, X2) testName, ::test::diePrintf_ne(X1, X2)

#undef CODA_OSS_test_diePrintf_greater_eq_
#undef CODA_OSS_test_diePrintf_greater_
#undef CODA_OSS_test_diePrintf_lesser_eq_
#undef CODA_OSS_test_diePrintf_lesser_
#define CODA_OSS_test_diePrintf_greater_eq_(X1, X2) testName, ::test::diePrintf_ge(X1, X2)
#define CODA_OSS_test_diePrintf_greater_(X1, X2) testName, ::test::diePrintf_gt(X1, X2)
#define CODA_OSS_test_diePrintf_lesser_eq_(X1, X2) testName, ::test::diePrintf_le(X1, X2)
#define CODA_OSS_test_diePrintf_lesser_(X1, X2) testName, ::test::diePrintf_lt(X1, X2)

template <typename TX1, typename TX2>
inline void test_assert_greater_(const TX1& X1, const TX2& X2)
{
Microsoft::VisualStudio::CppUnitTestFramework::Assert::IsTrue(X1 > X2);
}
#undef TEST_ASSERT_GREATER
#define TEST_ASSERT_GREATER(X1, X2) testName, test_assert_greater_(X1, X2)

#undef TEST_ASSERT_ALMOST_EQ_EPS
#define TEST_ASSERT_ALMOST_EQ_EPS(X1, X2, EPS) { (void)testName; Microsoft::VisualStudio::CppUnitTestFramework::Assert::AreEqual(X1, X2, EPS); Microsoft::VisualStudio::CppUnitTestFramework::Assert::AreEqual(X2, X1, EPS); }
namespace test
{
inline void assert_almost_eq(const std::string& testName, float X1, float X2)
{
constexpr auto EPS = static_cast<float>(0.0001);
TEST_ASSERT_ALMOST_EQ_EPS(X1, X2, EPS);
}
inline void assert_almost_eq(const std::string& testName, double X1, double X2)
{
constexpr auto EPS = static_cast<double>(0.0001);
TEST_ASSERT_ALMOST_EQ_EPS(X1, X2, EPS);
}
inline void assert_almost_eq(const std::string& testName, long double X1, long double X2)
{
assert_almost_eq(testName, static_cast<double>(X1), static_cast<double>(X2));
}
}

#undef TEST_ASSERT_ALMOST_EQ
#define TEST_ASSERT_ALMOST_EQ(X1, X2) test::assert_almost_eq(testName, X1, X2)

#undef TEST_ASSERT_EQ_MSG
#define TEST_ASSERT_EQ_MSG(msg, X1, X2) testName, Microsoft::VisualStudio::CppUnitTestFramework::Logger::WriteMessage(msg.c_str()); TEST_ASSERT_EQ(X1, X2)

#undef TEST_FAIL_MSG
#define TEST_FAIL_MSG(msg) { (void)testName; const str::EncodedStringView vw(msg); Microsoft::VisualStudio::CppUnitTestFramework::Assert::Fail(vw.wstring().c_str()); }

#undef TEST_EXCEPTION
#undef TEST_THROWS
#undef TEST_SPECIFIC_EXCEPTION
#define TEST_EXCEPTION(X) (void)testName; try{ (X); TEST_FAIL(#X " should have thrown."); } CODA_OSS_TEST_EXCEPTION_catch_
#define TEST_THROWS(X) (void)testName; try{ (X); TEST_FAIL(#X " should have thrown."); } catch (...){ TEST_ASSERT_TRUE(true); }
#define TEST_SPECIFIC_EXCEPTION(X, Y) testName, Microsoft::VisualStudio::CppUnitTestFramework::Assert::ExpectException<Y>([&](){(X);})

#include <include/UnitTest.h>
Loading

0 comments on commit 33adbd7

Please sign in to comment.