[med-svn] [Git][med-team/ncbi-vdb][master] 4 commits: New upstream version 2.9.1-1+dfsg

Andreas Tille gitlab at salsa.debian.org
Thu Jun 28 04:56:22 BST 2018


Andreas Tille pushed to branch master at Debian Med / ncbi-vdb


Commits:
264af7d4 by Andreas Tille at 2018-06-28T05:40:37+02:00
New upstream version 2.9.1-1+dfsg
- - - - -
38897fd1 by Andreas Tille at 2018-06-28T05:41:13+02:00
Update upstream source from tag 'upstream/2.9.1-1+dfsg'

Update to upstream version '2.9.1-1+dfsg'
with Debian dir 28bb3741960f78322d7847c7f59b387c41b28905
- - - - -
fbe4f400 by Andreas Tille at 2018-06-28T05:41:13+02:00
New upstream version

- - - - -
8feb1ed4 by Andreas Tille at 2018-06-28T05:47:48+02:00
Upload to unstable

- - - - -


11 changed files:

- CHANGES.md
- debian/changelog
- interfaces/kfc/rc.h
- interfaces/klib/rc.h
- libs/kdb/libkdb.vers.h
- libs/klib/hashfile.c
- libs/klib/hashtable.c
- libs/klib/release-vers.h
- libs/vdb/libvdb.vers.h
- test/klib/Makefile
- + test/klib/test-rcenum.cpp


Changes:

=====================================
CHANGES.md
=====================================
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,5 +1,11 @@
 # NCBI External Developer Release:
 
+## NCBI VDB 2.9.1-1
+**June 25, 2018**
+
+  **ncbi-vdb**: fixed break of binary compatibility introduced in release 2.9.1
+
+
 ## NCBI VDB 2.9.1
 **June 15, 2018**
 


=====================================
debian/changelog
=====================================
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+ncbi-vdb (2.9.1-1+dfsg-1) unstable; urgency=medium
+
+  * New upstream version
+  * Fixes accidental ABI break in 2.9.1
+    Closes: #902566
+
+ -- Andreas Tille <tille at debian.org>  Thu, 28 Jun 2018 05:41:16 +0200
+
 ncbi-vdb (2.9.1+dfsg-1) unstable; urgency=medium
 
   * New upstream version


=====================================
interfaces/kfc/rc.h
=====================================
--- a/interfaces/kfc/rc.h
+++ b/interfaces/kfc/rc.h
@@ -161,8 +161,9 @@ RC_ENUM ( RCTarget )
     RC_ENTRY ( rcData, "data" )
     RC_ENTRY ( rcQuery, "query" )
     RC_ENTRY ( rcUri, "uri" )
-    RC_ENTRY ( rcHashtable, "hashtable" )
     RC_LAST  ( rcLastTarget_v1_1 )
+// WARNING: RCObject requires rcLastTarget_v1_1 to be forever constant for ABI
+// compatibility.
 };
 
 /* RCContext


=====================================
interfaces/klib/rc.h
=====================================
--- a/interfaces/klib/rc.h
+++ b/interfaces/klib/rc.h
@@ -103,7 +103,7 @@ KLIB_EXTERN bool CC GetUnreadRCInfo ( rc_t *rc, const char **filename, const cha
     assert ( ( int ) rcLastContext_v1_1  <= ( 1 << 7 ) )
 
 #define ASSERT_OBJ_STATE() \
-    assert ( ( int ) rcLink == ( int ) rcHashtable + 1 ),              \
+    assert ( ( int ) rcLink == ( int ) rcUri + 1 ),              \
     assert ( ( int ) rcItem == ( int ) rcLibrary + 1 ),          \
     assert ( ( int ) rcOpen == ( int ) rcOutofrange + 1 ),       \
     assert ( ( int ) rcLastObject_v1_1  <= ( 1 << 8 ) ),         \


=====================================
libs/kdb/libkdb.vers.h
=====================================
--- a/libs/kdb/libkdb.vers.h
+++ b/libs/kdb/libkdb.vers.h
@@ -24,4 +24,4 @@
 *
 */
 
-#define LIBKDB_VERS 0x02070019
+#define LIBKDB_VERS 0x0207001A


=====================================
libs/klib/hashfile.c
=====================================
--- a/libs/klib/hashfile.c
+++ b/libs/klib/hashfile.c
@@ -420,7 +420,7 @@ static rc_t rehash_segment( KHashFile * self, size_t segment, size_t capacity )
         = (Hashtable *)seg_alloc( self, segment, sizeof( Hashtable ) );
     if ( !new_hashtable )
     {
-        return RC( rcCont, rcHashtable, rcInserting, rcMemory, rcExhausted );
+        return RC( rcCont, rcTrie, rcInserting, rcMemory, rcExhausted );
     }
 
     new_hashtable->table_sz = capacity;
@@ -428,7 +428,7 @@ static rc_t rehash_segment( KHashFile * self, size_t segment, size_t capacity )
         = seg_alloc( self, segment, capacity * sizeof( u8 * ) );
     if ( !new_hashtable->table )
     {
-        return RC( rcCont, rcHashtable, rcInserting, rcMemory, rcExhausted );
+        return RC( rcCont, rcTrie, rcInserting, rcMemory, rcExhausted );
     }
 
     if ( old_hashtable )
@@ -476,14 +476,14 @@ static rc_t rehash_segment( KHashFile * self, size_t segment, size_t capacity )
 LIB_EXPORT rc_t KHashFileMake( KHashFile ** self, KFile * hashfile )
 {
     if ( self == NULL )
-        return RC( rcCont, rcHashtable, rcConstructing, rcParam, rcInvalid );
+        return RC( rcCont, rcTrie, rcConstructing, rcParam, rcInvalid );
 
     rc_t rc;
     *self = NULL;
 
     KHashFile * kht = (KHashFile *)malloc( sizeof( KHashFile ) );
     if ( kht == NULL )
-        return RC( rcCont, rcHashtable, rcConstructing, rcMemory, rcExhausted );
+        return RC( rcCont, rcTrie, rcConstructing, rcMemory, rcExhausted );
 
     kht->file = hashfile;
 #if _ARCH_BITS == 32
@@ -581,7 +581,7 @@ LIB_EXPORT bool KHashFileFind( const KHashFile * self, const void * key,
                                void * value, size_t * value_size )
 {
     if ( self == NULL )
-        return RC( rcCont, rcHashtable, rcInserting, rcParam, rcInvalid );
+        return RC( rcCont, rcTrie, rcInserting, rcParam, rcInvalid );
 
     size_t            triangle  = 0;
     uint64_t          bucket    = keyhash;
@@ -648,10 +648,10 @@ LIB_EXPORT rc_t KHashFileAdd( KHashFile * self, const void * key,
                               const void * value, const size_t value_size )
 {
     if ( self == NULL )
-        return RC( rcCont, rcHashtable, rcInserting, rcParam, rcInvalid );
+        return RC( rcCont, rcTrie, rcInserting, rcParam, rcInvalid );
 
     if ( key == NULL || key_size == 0 )
-        return RC( rcCont, rcHashtable, rcInserting, rcParam, rcInvalid );
+        return RC( rcCont, rcTrie, rcInserting, rcParam, rcInvalid );
     size_t    triangle = 0;
     uint64_t  bucket   = keyhash;
     size_t    segment  = which_segment( bucket );
@@ -680,7 +680,7 @@ LIB_EXPORT rc_t KHashFileAdd( KHashFile * self, const void * key,
         {
             void * buf = seg_alloc( self, segment, kvsize );
             if ( !buf )
-                return RC( rcCont, rcHashtable, rcInserting, rcMemory,
+                return RC( rcCont, rcTrie, rcInserting, rcMemory,
                            rcExhausted );
             hkv_encode( &hkv, buf );
 
@@ -751,7 +751,7 @@ LIB_EXPORT rc_t KHashFileAdd( KHashFile * self, const void * key,
 
                     void * buf = seg_alloc( self, segment, kvsize );
                     if ( !buf )
-                        return RC( rcCont, rcHashtable, rcInserting, rcMemory,
+                        return RC( rcCont, rcTrie, rcInserting, rcMemory,
                                    rcExhausted );
                     hkv_encode( &hkv, buf );
 
@@ -772,7 +772,7 @@ LIB_EXPORT bool KHashFileDelete( KHashFile * self, const void * key,
                                  const size_t key_size, uint64_t keyhash )
 {
     if ( self == NULL )
-        return RC( rcCont, rcHashtable, rcInserting, rcParam, rcInvalid );
+        return RC( rcCont, rcTrie, rcInserting, rcParam, rcInvalid );
 
     size_t    triangle = 0;
     uint64_t  bucket   = keyhash;


=====================================
libs/klib/hashtable.c
=====================================
--- a/libs/klib/hashtable.c
+++ b/libs/klib/hashtable.c
@@ -120,7 +120,7 @@ static rc_t rehash(KHashTable* self, size_t capacity)
     size_t bucket_size = self->bucket_size;
     void* new_buckets = calloc(1, capacity * bucket_size);
     if (!new_buckets) {
-        return RC(rcCont, rcHashtable, rcInserting, rcMemory, rcExhausted);
+        return RC(rcCont, rcTrie, rcInserting, rcMemory, rcExhausted);
     }
 
     self->num_buckets = capacity;
@@ -158,24 +158,24 @@ LIB_EXPORT rc_t KHashTableMake(KHashTable** self, size_t key_size,
                                double max_load_factor, hashkey_type key_type)
 {
     if (self == NULL)
-        return RC(rcCont, rcHashtable, rcConstructing, rcParam, rcInvalid);
+        return RC(rcCont, rcTrie, rcConstructing, rcParam, rcInvalid);
 
     *self = NULL;
 
     if (max_load_factor < 0 || max_load_factor >= 1.0)
-        return RC(rcCont, rcHashtable, rcConstructing, rcParam, rcInvalid);
+        return RC(rcCont, rcTrie, rcConstructing, rcParam, rcInvalid);
 
     if (key_size == 0)
-        return RC(rcCont, rcHashtable, rcConstructing, rcParam, rcInvalid);
+        return RC(rcCont, rcTrie, rcConstructing, rcParam, rcInvalid);
 
     if (key_type == cstr && key_size != sizeof(char*))
-        return RC(rcCont, rcHashtable, rcConstructing, rcParam, rcInvalid);
+        return RC(rcCont, rcTrie, rcConstructing, rcParam, rcInvalid);
 
     if (capacity <= 16) capacity = 16;
 
     KHashTable* kht = (KHashTable*)malloc(sizeof(KHashTable));
     if (kht == NULL)
-        return RC(rcCont, rcHashtable, rcConstructing, rcMemory, rcExhausted);
+        return RC(rcCont, rcTrie, rcConstructing, rcMemory, rcExhausted);
     kht->key_size = key_size;
     kht->value_size = value_size;
     kht->key_type = key_type;
@@ -314,7 +314,7 @@ LIB_EXPORT rc_t KHashTableAdd(KHashTable* self, const void* key,
                               uint64_t keyhash, const void* value)
 {
     if (self == NULL || self->buckets == NULL)
-        return RC(rcCont, rcHashtable, rcInserting, rcParam, rcInvalid);
+        return RC(rcCont, rcTrie, rcInserting, rcParam, rcInvalid);
 
     keyhash |= (BUCKET_VALID | BUCKET_VISIBLE);
     uint64_t bucket = keyhash;


=====================================
libs/klib/release-vers.h
=====================================
--- a/libs/klib/release-vers.h
+++ b/libs/klib/release-vers.h
@@ -40,4 +40,4 @@
  */
 #define RELEASE_TYPE 'r'
 /* Revision of Version of current SRA Toolkit Release */
-#define RELEASE_REVISION 0
+#define RELEASE_REVISION 1


=====================================
libs/vdb/libvdb.vers.h
=====================================
--- a/libs/vdb/libvdb.vers.h
+++ b/libs/vdb/libvdb.vers.h
@@ -24,4 +24,4 @@
 *
 */
 
-#define LIBVDB_VERS 0x02070019
+#define LIBVDB_VERS 0x0207001A


=====================================
test/klib/Makefile
=====================================
--- a/test/klib/Makefile
+++ b/test/klib/Makefile
@@ -37,6 +37,7 @@ TEST_TOOLS = \
 	test-out \
 	test-SraReleaseVersion \
 	test-time \
+	test-rcenum \
 	test-klib \
 	test-vnamelist \
 	test-progressbar \
@@ -158,11 +159,23 @@ TEST_TIME_SRC = \
 
 TEST_TIME_OBJ = \
 	$(addsuffix .$(OBJX),$(TEST_TIME_SRC))
-    
+
 $(TEST_BINDIR)/test-time: $(TEST_TIME_OBJ)
 	$(LP) --exe -o $@ $^ $(TEST_SRA_RELEASE_VERSION_LIB)
 
 #-------------------------------------------------------------------------------
+# test-rcenum
+#
+TEST_RCENUM_SRC = \
+	test-rcenum
+
+TEST_RCENUM_OBJ = \
+	$(addsuffix .$(OBJX),$(TEST_RCENUM_SRC))
+
+$(TEST_BINDIR)/test-rcenum: $(TEST_RCENUM_OBJ)
+	$(LP) --exe -o $@ $^ $(TEST_SRA_RELEASE_VERSION_LIB)
+
+#-------------------------------------------------------------------------------
 # test-out
 #
 TEST_OUT_SRC = \


=====================================
test/klib/test-rcenum.cpp
=====================================
--- /dev/null
+++ b/test/klib/test-rcenum.cpp
@@ -0,0 +1,327 @@
+/*===========================================================================
+ *
+ *                            PUBLIC DOMAIN NOTICE
+ *               National Center for Biotechnology Information
+ *
+ *  This software/database is a "United States Government Work" under the
+ *  terms of the United States Copyright Act.  It was written as part of
+ *  the author's official duties as a United States Government employee and
+ *  thus cannot be copyrighted.  This software/database is freely available
+ *  to the public for use. The National Library of Medicine and the U.S.
+ *  Government have not placed any restriction on its use or reproduction.
+ *
+ *  Although all reasonable efforts have been taken to ensure the accuracy
+ *  and reliability of the software and data, the NLM and the U.S.
+ *  Government do not and cannot warrant the performance or results that
+ *  may be obtained by using this software or data. The NLM and the U.S.
+ *  Government disclaim all warranties, express or implied, including
+ *  warranties of performance, merchantability or fitness for any particular
+ *  purpose.
+ *
+ *  Please cite the author in any work or product based on this material.
+ *
+ * ===========================================================================
+ *
+ */
+
+#include <kfc/rc.h>
+#include <ktst/unit_test.hpp>
+
+#include <cstdlib>
+#include <cstring>
+#include <set>
+#include <stdexcept>
+#include <stdint.h>
+#include <utility>
+
+
+TEST_SUITE( KlibTestSuite );
+
+
+TEST_SUITE( TestRCEnumSuite );
+
+TEST_CASE( test )
+{
+    /////////////////////////////////////////////////////////////////////////////
+
+    typedef struct senums
+    {
+        const char * rcstr;
+        int rcenum;
+        int constval;
+    } senums;
+
+
+#define __stringify_1(x...) #x
+#define __stringify(x...) __stringify_1(x)
+#define RCIT(RCENUM, VAL)  { __stringify(RCENUM) , RCENUM , VAL }
+    senums enums[] = {
+        RCIT(rcAccessing, 5),
+        RCIT(rcAliasing, 12),
+        RCIT(rcAlign, 15),
+        RCIT(rcAllocating, 0),
+        RCIT(rcAmbiguous, 6),
+        RCIT(rcApp, 11),
+        RCIT(rcAppending, 59),
+        RCIT(rcArc, 1),
+        RCIT(rcArcHardLink, 78),
+        RCIT(rcArgv, 4),
+        RCIT(rcAttaching, 48),
+        RCIT(rcAttr, 5),
+        RCIT(rcBadVersion, 8),
+        RCIT(rcBarrier, 6),
+        RCIT(rcBlob, 7),
+        RCIT(rcBuffer, 8),
+        RCIT(rcBusy, 14),
+        RCIT(rcByteOrder, 73),
+        RCIT(rcCS, 4),
+        RCIT(rcCanceled, 17),
+        RCIT(rcCasting, 1),
+        RCIT(rcChar, 9),
+        RCIT(rcChecksum, 85),
+        RCIT(rcClassifying, 53),
+        RCIT(rcClearing, 17),
+        RCIT(rcClosing, 21),
+        RCIT(rcCmd, 57),
+        RCIT(rcColumn, 10),
+        RCIT(rcCommitting, 25),
+        RCIT(rcComparing, 62),
+        RCIT(rcConcatenating, 31),
+        RCIT(rcCondition, 11),
+        RCIT(rcConnection, 87),
+        RCIT(rcConstraint, 72),
+        RCIT(rcConstructing, 2),
+        RCIT(rcCont, 3),
+        RCIT(rcConverting, 45),
+        RCIT(rcCopying, 30),
+        RCIT(rcCorrupt, 11),
+        RCIT(rcCrc, 84),
+        RCIT(rcCreating, 19),
+        RCIT(rcCursor, 12),
+        RCIT(rcDB, 9),
+        RCIT(rcData, 58),
+        RCIT(rcDatabase, 13),
+        RCIT(rcDeadlock, 28),
+        RCIT(rcDecoding, 37),
+        RCIT(rcDecrypting, 61),
+        RCIT(rcDestroyed, 9),
+        RCIT(rcDestroying, 3),
+        RCIT(rcDetached, 27),
+        RCIT(rcDetaching, 49),
+        RCIT(rcDirEntry, 77),
+        RCIT(rcDirectory, 14),
+        RCIT(rcDoc, 15),
+        RCIT(rcDone, 1),
+        RCIT(rcDuplicate, 37),
+        RCIT(rcDylib, 52),
+        RCIT(rcEmpty, 18),
+        RCIT(rcEncoding, 36),
+        RCIT(rcEncrypting, 60),
+        RCIT(rcEncryption, 83),
+        RCIT(rcEncryptionKey, 55),
+        RCIT(rcEnvironment, 89),
+        RCIT(rcError, 88),
+        RCIT(rcEvaluating, 56),
+        RCIT(rcExcessive, 21),
+        RCIT(rcExe, 0),
+        RCIT(rcExecuting, 39),
+        RCIT(rcExhausted, 19),
+        RCIT(rcExists, 23),
+        RCIT(rcExpression, 53),
+        RCIT(rcFF, 5),
+        RCIT(rcFPCoding, 51),
+        RCIT(rcFS, 6),
+        RCIT(rcFailed, 46),
+        RCIT(rcFile, 17),
+        RCIT(rcFileDesc, 18),
+        RCIT(rcFileFormat, 19),
+        RCIT(rcFirstContext_v1_1, 57),
+        RCIT(rcFirstModule_v1_1, 13),
+        RCIT(rcFirstObject, 60),
+        RCIT(rcFirstObject_v1_1, 80),
+        RCIT(rcFirstState_v1_1, 40),
+        RCIT(rcFirstTarget_v1_1, 53),
+        RCIT(rcFlushing, 58),
+        RCIT(rcFormat, 67),
+        RCIT(rcFormatter, 21),
+        RCIT(rcFormatting, 32),
+        RCIT(rcFreezing, 29),
+        RCIT(rcFunctParam, 22),
+        RCIT(rcFunction, 20),
+        RCIT(rcHeader, 23),
+        RCIT(rcHuffmanCoding, 40),
+        RCIT(rcId, 70),
+        RCIT(rcIdentifying, 67),
+        RCIT(rcIgnored, 39),
+        RCIT(rcInPlaceNotAllowed, 33),
+        RCIT(rcIncomplete, 15),
+        RCIT(rcInconsistent, 13),
+        RCIT(rcIncorrect, 12),
+        RCIT(rcIndex, 24),
+        RCIT(rcInflating, 57),
+        RCIT(rcInitializing, 63),
+        RCIT(rcInserting, 15),
+        RCIT(rcInsufficient, 20),
+        RCIT(rcInterface, 69),
+        RCIT(rcInterrupted, 16),
+        RCIT(rcInvalid, 10),
+        RCIT(rcItem, 81),
+        RCIT(rcIterator, 25),
+        RCIT(rcKFG, 14),
+        RCIT(rcKrypto, 16),
+        RCIT(rcLibrary, 80),
+        RCIT(rcLink, 61),
+        RCIT(rcListing, 6),
+        RCIT(rcLoading, 55),
+        RCIT(rcLock, 26),
+        RCIT(rcLocked, 25),
+        RCIT(rcLocking, 9),
+        RCIT(rcLog, 27),
+        RCIT(rcLogging, 50),
+        RCIT(rcMD5SumFmt, 28),
+        RCIT(rcMemMap, 29),
+        RCIT(rcMemory, 65),
+        RCIT(rcMessage, 74),
+        RCIT(rcMetadata, 30),
+        RCIT(rcMgr, 31),
+        RCIT(rcMode, 82),
+        RCIT(rcMultiplexing, 52),
+        RCIT(rcNS, 18),
+        RCIT(rcName, 66),
+        RCIT(rcNamelist, 32),
+        RCIT(rcNoErr, 0),
+        RCIT(rcNoObj, 0),
+        RCIT(rcNoPerm, 32),
+        RCIT(rcNoTarg, 0),
+        RCIT(rcNode, 33),
+        RCIT(rcNotAvailable, 47),
+        RCIT(rcNotFound, 24),
+        RCIT(rcNotOpen, 43),
+        RCIT(rcNull, 7),
+        RCIT(rcNumeral, 34),
+        RCIT(rcOffset, 64),
+        RCIT(rcOpen, 41),
+        RCIT(rcOpening, 20),
+        RCIT(rcOutOfKDirectory, 38),
+        RCIT(rcOutoforder, 42),
+        RCIT(rcOutofrange, 40),
+        RCIT(rcPS, 7),
+        RCIT(rcPacking, 34),
+        RCIT(rcPagemap, 35),
+        RCIT(rcParam, 63),
+        RCIT(rcParsing, 44),
+        RCIT(rcPath, 36),
+        RCIT(rcPersisting, 28),
+        RCIT(rcPositioning, 33),
+        RCIT(rcProcess, 37),
+        RCIT(rcProcessing, 66),
+        RCIT(rcProduction, 54),
+        RCIT(rcProjecting, 14),
+        RCIT(rcQuery, 59),
+        RCIT(rcQueue, 38),
+        RCIT(rcRDBMS, 17),
+        RCIT(rcRWLock, 39),
+        RCIT(rcRange, 71),
+        RCIT(rcReading, 23),
+        RCIT(rcReadonly, 30),
+        RCIT(rcRefcount, 92),
+        RCIT(rcRegistering, 42),
+        RCIT(rcReindexing, 41),
+        RCIT(rcReleasing, 4),
+        RCIT(rcRemoving, 16),
+        RCIT(rcRenaming, 11),
+        RCIT(rcResetting, 27),
+        RCIT(rcResizing, 22),
+        RCIT(rcResolving, 8),
+        RCIT(rcResources, 76),
+        RCIT(rcRetrieving, 64),
+        RCIT(rcReverting, 26),
+        RCIT(rcRng, 56),
+        RCIT(rcRow, 79),
+        RCIT(rcRuntime, 1),
+        RCIT(rcSRA, 13),
+        RCIT(rcSchema, 40),
+        RCIT(rcSearching, 54),
+        RCIT(rcSeed, 86),
+        RCIT(rcSelecting, 13),
+        RCIT(rcSelf, 62),
+        RCIT(rcSemaphore, 41),
+        RCIT(rcSending, 65),
+        RCIT(rcSignalSet, 90),
+        RCIT(rcSignaling, 46),
+        RCIT(rcSize, 91),
+        RCIT(rcStorage, 42),
+        RCIT(rcString, 43),
+        RCIT(rcTable, 44),
+        RCIT(rcTag, 75),
+        RCIT(rcText, 2),
+        RCIT(rcThread, 45),
+        RCIT(rcTimeout, 46),
+        RCIT(rcToc, 2),
+        RCIT(rcTocEntry, 3),
+        RCIT(rcToken, 47),
+        RCIT(rcTokenizing, 43),
+        RCIT(rcTooBig, 36),
+        RCIT(rcTooLong, 35),
+        RCIT(rcTooShort, 34),
+        RCIT(rcTransfer, 68),
+        RCIT(rcTree, 48),
+        RCIT(rcTrie, 49),
+        RCIT(rcType, 50),
+        RCIT(rcUnauthorized, 29),
+        RCIT(rcUndefined, 44),
+        RCIT(rcUnequal, 45),
+        RCIT(rcUnexpected, 4),
+        RCIT(rcUnknown, 2),
+        RCIT(rcUnlocked, 26),
+        RCIT(rcUnlocking, 10),
+        RCIT(rcUnpacking, 35),
+        RCIT(rcUnrecognized, 5),
+        RCIT(rcUnsupported, 3),
+        RCIT(rcUpdating, 18),
+        RCIT(rcUri, 60),
+        RCIT(rcVDB, 10),
+        RCIT(rcVFS, 19),
+        RCIT(rcValidating, 38),
+        RCIT(rcVector, 51),
+        RCIT(rcViolated, 22),
+        RCIT(rcVisiting, 7),
+        RCIT(rcWaiting, 47),
+        RCIT(rcWriteonly, 31),
+        RCIT(rcWriting, 24),
+        RCIT(rcWrongType, 48),
+        RCIT(rcXF, 8),
+        RCIT(rcXML, 12)
+    };
+
+
+    size_t numtests = sizeof( enums ) / sizeof( enums[0] );
+
+    fprintf(stderr, "Checking %zu RC_ENUMs for ABI compatibility", numtests );
+    TEST_MESSAGE( "Checking RC_ENUMs for ABI compatibility");
+
+
+    for ( size_t i = 0; i != numtests; ++i )
+    {
+        int rcenum = enums[i].rcenum;
+        int constval = enums[i].constval;
+        const char * rcstr = enums[i].rcstr;
+
+        if ( rcenum != constval )
+        {
+            fprintf( stderr, "RC ABI breakage #%zu %d!=%d\n", i, rcenum, constval);
+            fprintf(stderr, "\t(if correct, replace source with: RCIT(%s, %d)\n", rcstr, rcenum);
+            REQUIRE_EQ( rcenum, constval);
+        }
+    }
+
+    ////////////////////////////////////////////////////////////////////////////////
+}
+
+extern "C" {
+    ver_t CC KAppVersion( void ) { return 0; }
+    rc_t CC KMain( int argc, char * argv[] )
+    {
+        return TestRCEnumSuite( argc, argv );
+    }
+}



View it on GitLab: https://salsa.debian.org/med-team/ncbi-vdb/compare/23ed96f920db1c321ac0d414bc4ca11fd7499c01...8feb1ed4ba39c4d553ef9c14e4d48066486634a1

-- 
View it on GitLab: https://salsa.debian.org/med-team/ncbi-vdb/compare/23ed96f920db1c321ac0d414bc4ca11fd7499c01...8feb1ed4ba39c4d553ef9c14e4d48066486634a1
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20180628/ec6446af/attachment-0001.html>


More information about the debian-med-commit mailing list