FIXTURE_TEST_CASE(Test1LocalDep, EmptyFixture) { rc_t rc = 0; const char SRR413283[] = "SRR413283"; VPath* acc = NULL; REQUIRE_RC(VFSManagerMakePath(vmgr, &acc, SRR413283)); const VPath *local = NULL; REQUIRE_RC_FAIL(VResolverLocal(resolver, acc, &local)); RELEASE(VPath, acc); const VDatabase *db = NULL; REQUIRE_RC(VDBManagerOpenDBRead(mgr, &db, NULL, SRR413283)); const VDBDependencies *dep = NULL; // missing REQUIRE_RC(VDatabaseListDependencies(db, &dep, true)); uint32_t count = 1; REQUIRE_RC(VDBDependenciesCount(dep, &count)); CHECK_EQUAL(count, (uint32_t)0); RELEASE(VDBDependencies, dep); REQUIRE_RC(VDatabaseListDependencies(db, &dep, false)); REQUIRE_RC(VDBDependenciesCount(dep, &count)); CHECK_EQUAL(count, (uint32_t)1); RELEASE(VDBDependencies, dep); RELEASE(VDatabase, db); RELEASE(VPath, local); }
FIXTURE_TEST_CASE(TestManyNoDep, EmptyFixture) { rc_t rc = 0; const char SRR543323[] = "SRR543323"; VPath* acc = NULL; REQUIRE_RC(VFSManagerMakePath(vmgr, &acc, SRR543323)); const VPath *local = NULL; REQUIRE_RC_FAIL(VResolverLocal(resolver, acc, &local)); RELEASE(VPath, acc); struct VSchema *schema; REQUIRE_RC(VDBManagerMakeSRASchema(mgr, &schema)); const VDatabase *db = NULL; REQUIRE_RC(VDBManagerOpenDBRead(mgr, &db, schema, SRR543323)); REQUIRE_RC(VSchemaRelease(schema)); const VDBDependencies *dep = NULL; // missing REQUIRE_RC(VDatabaseListDependencies(db, &dep, true)); uint32_t count = 1; REQUIRE_RC(VDBDependenciesCount(dep, &count)); CHECK_EQUAL(count, (uint32_t)21); RELEASE(VDBDependencies, dep); REQUIRE_RC(VDatabaseListDependencies(db, &dep, false)); REQUIRE_RC(VDBDependenciesCount(dep, &count)); CHECK_EQUAL(count, (uint32_t)21); RELEASE(VDBDependencies, dep); RELEASE(VDatabase, db); RELEASE(VPath, local); }
FIXTURE_TEST_CASE(Test1YesDep, RefseqFixture) { if (siteless) { TEST_MESSAGE("Test skipped because site repository does not exist"); return; } rc_t rc = 0; const VDatabase *db = NULL; const char SRR619505[] = "SRR619505"; REQUIRE_RC(VDBManagerOpenDBRead(mgr, &db, NULL, SRR619505)); RELEASE(VDatabase, db); VPath* acc = NULL; REQUIRE_RC(VFSManagerMakePath(vmgr, &acc, SRR619505)); const VPath *local = NULL; REQUIRE_RC(VResolverLocal(resolver, acc, &local)); RELEASE(VPath, acc); const String *s = NULL; REQUIRE_RC(VPathMakeString(local, &s)); REQUIRE(s && s->addr); REQUIRE_RC(VDBManagerOpenDBRead(mgr, &db, NULL, s->addr)); const VDBDependencies *dep = NULL; // missing REQUIRE_RC(VDatabaseListDependencies(db, &dep, true)); uint32_t count = 1; REQUIRE_RC(VDBDependenciesCount(dep, &count)); CHECK_EQUAL(count, (uint32_t)0); RELEASE(VDBDependencies, dep); REQUIRE_RC(VDatabaseListDependencies(db, &dep, false)); REQUIRE_RC(VDBDependenciesCount(dep, &count)); CHECK_EQUAL(count, (uint32_t)1); RELEASE(VDBDependencies, dep); RELEASE(VDatabase, db); free(const_cast<String*>(s)); RELEASE(VPath, local); }
static rc_t ReportDepend(const ReportFuncs *f, uint32_t indent, const VDatabase* db) { rc_t rc = 0; const VDBDependencies* dep = NULL; const char tag[] = "Dependencies"; assert(db); reportOpen(indent, tag, 0); rc = VDatabaseListDependencies(db, &dep, false); if (rc != 0) { reportError(indent + 1, rc, "VDatabaseListDependencies"); } else { uint32_t count = 0; rc = VDBDependenciesCount(dep, &count); if (rc != 0) { reportError(indent + 1, rc, "VDBDependenciesCount"); } else { uint32_t missing = 0; const char tag[] = "List"; rc = VDBDependenciesReportDepend1(dep, f, count, indent + 2, false, &missing); if (rc == 0) { reportOpen(indent + 1, tag, 2, "count", 'd', count, "missing", 'd', missing); } else { reportOpen(indent + 1, tag, 1, "count", 'd', count); } rc = VDBDependenciesReportDepend1(dep, f, count, indent + 2, true, &missing); reportClose(indent + 1, tag); } } reportClose(indent, tag); RELEASE(VDBDependencies, dep); return rc; }
static rc_t align_info(const Params* prm) { rc_t rc = 0; const VDatabase* db = NULL; const VDBManager* mgr = NULL; const KDBManager *kmgr = NULL; VSchema* schema = NULL; bool is_db = false; if (prm == NULL) { return RC(rcExe, rcQuery, rcExecuting, rcParam, rcNull); } if (rc == 0) { rc = VDBManagerMakeRead(&mgr, NULL); DISP_RC(rc, "while calling VDBManagerMakeRead"); } if (rc == 0) { rc = VDBManagerOpenKDBManagerRead(mgr, &kmgr); DISP_RC(rc, "while calling VDBManagerOpenKDBManagerRead"); } if (rc == 0) { rc = VDBManagerMakeSRASchema(mgr, &schema); DISP_RC(rc, "while calling VDBManagerMakeSRASchema"); } if (rc == 0) { /* const char path[] = "/panfs/pan1/trace_work/scratch/XXX000013"; */ rc = VDBManagerOpenDBRead(mgr, &db, schema, prm->dbPath); if (rc == 0) { is_db = true; } else if (rc == SILENT_RC(rcDB, rcMgr, rcOpening, rcDatabase, rcIncorrect)) { PLOGMSG(klogWarn, (klogWarn, "'$(path)' is not a database", "path=%s", prm->dbPath)); rc = 0; } else { PLOGERR(klogErr, (klogErr, rc, "$(path)", "path=%s", prm->dbPath)); } } if (is_db) { if (rc == 0) { if (prm->paramRef) { const VDBDependencies* dep = NULL; uint32_t count = 0; int i = 0; rc = VDatabaseListDependencies(db, &dep, false); DISP_RC2(rc, prm->dbPath, "while calling VDatabaseListDependencies"); if (rc == 0) { rc = VDBDependenciesCount(dep, &count); DISP_RC2(rc, prm->dbPath, "while calling VDBDependenciesCount"); } for (i = 0; i < count && rc == 0; ++i) { bool circular = false; const char* name = NULL; const char* path = NULL; const char* remote = NULL; bool local = false; const char* seqId = NULL; rc = VDBDependenciesCircular(dep, &circular, i); if (rc != 0) { DISP_RC2(rc, prm->dbPath, "while calling VDBDependenciesCircular"); break; } rc = VDBDependenciesName(dep, &name, i); if (rc != 0) { DISP_RC2(rc, prm->dbPath, "while calling VDBDependenciesName"); break; } rc = VDBDependenciesPath(dep, &path, i); if (rc != 0) { DISP_RC2(rc, prm->dbPath, "while calling VDBDependenciesPath"); break; } rc = VDBDependenciesLocal(dep, &local, i); if (rc != 0) { DISP_RC2(rc, prm->dbPath, "while calling VDBDependenciesLocal"); break; } rc = VDBDependenciesSeqId(dep, &seqId, i); if (rc != 0) { DISP_RC2(rc, prm->dbPath, "while calling VDBDependenciesSeqId"); break; } rc = VDBDependenciesPathRemote(dep, &remote, i); if (rc != 0) { DISP_RC2(rc, prm->dbPath, "while calling VDBDependenciesRemote"); break; } OUTMSG(("%s,%s,%s,%s", seqId, name, (circular ? "true" : "false"), (local ? "local" : "remote"))); if (path && path[0]) { OUTMSG((":%s", path)); } else if (remote && remote[0]) { OUTMSG(("::%s", remote)); } OUTMSG(("\n")); } DESTRUCT(VDBDependencies, dep); } if (prm->paramBamHeader) { rc_t rc3 = bam_header(db); if (rc3 != 0 && rc == 0) { rc = rc3; } } if (prm->paramQuality) { rc_t rc3 = qual_stats(prm, db); if (rc3 != 0 && rc == 0) { rc = rc3; } } } } DESTRUCT(VSchema, schema); DESTRUCT(KDBManager, kmgr); DESTRUCT(VDBManager, mgr); DESTRUCT(VDatabase, db); return rc; }