/* * Copyright (c) 2010-2012 Postgres-XC Development Group */ #include #include #include "gtm/libpq-fe.h" #include "gtm/gtm_c.h" #include "gtm/gtm_client.h" #include "gtm/register.h" #include "test_common.h" pthread_key_t threadinfo_key; void setUp() { connect1(); } void tearDown() { GTMPQfinish(conn); } void test_seq5_01() { int rc; GTM_SequenceKeyData seqkey; GTM_Sequence increment; GTM_Sequence minval; GTM_Sequence maxval; GTM_Sequence startval; bool cycle; GTM_Sequence cur; SETUP(); /* * open sequence */ seqkey.gsk_key = strdup("seq1"); seqkey.gsk_keylen = strlen(seqkey.gsk_key); seqkey.gsk_type = GTM_SEQ_FULL_NAME; increment = 1; minval = 0; maxval = 10000; startval = 0; cycle = true; rc = open_sequence(conn, &seqkey, increment, minval, maxval, startval, cycle); _ASSERT(rc >= 0); _ASSERT(grep_count(LOG_ACTIVE, "Opening sequence seq1") == 1); _ASSERT(grep_count(LOG_STANDBY, "Opening sequence seq1") == 1); /* get current */ cur = get_current(conn, &seqkey); _ASSERT(cur == 0); _ASSERT(grep_count(LOG_ACTIVE, "Getting current value 0 for sequence seq1") == 1); _ASSERT(grep_count(LOG_STANDBY, "Getting current value 0 for sequence seq1") == 1); /* get next */ cur = get_next(conn, &seqkey); _ASSERT(cur == 1); _ASSERT(grep_count(LOG_ACTIVE, "Getting next value 1 for sequence seq1") == 1); _ASSERT(grep_count(LOG_STANDBY, "Getting next value 1 for sequence seq1") == 1); system("killall -9 gtm"); system("./promote.sh"); sleep(1); GTMPQfinish(conn); connect2(); /* get current */ cur = get_current(conn, &seqkey); _ASSERT(cur == 1); _ASSERT(grep_count(LOG_STANDBY, "Getting current value 1 for sequence seq1") == 1); /* get next */ cur = get_next(conn, &seqkey); _ASSERT(cur == 2); _ASSERT(grep_count(LOG_STANDBY, "Getting next value 2 for sequence seq1") == 1); /* * close */ rc = close_sequence(conn, &seqkey); _ASSERT(rc >= 0); _ASSERT(grep_count(LOG_STANDBY, "Closing sequence seq1") == 1); TEARDOWN(); } int main(int argc, char* argv[]) { system("./stop.sh"); system("./clean.sh"); system("./start.sh"); test_seq5_01(); return 0; }