mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
neww ndb automake
ndb/test/tools/hugoCalculator.cpp: Rename: ndb/test/tools/hugoCalculator/hugoCalculator.cpp -> ndb/test/tools/hugoCalculator.cpp ndb/test/tools/hugoLoad.cpp: Rename: ndb/test/tools/hugoLoad/hugoLoad.cpp -> ndb/test/tools/hugoLoad.cpp ndb/test/tools/hugoFill.cpp: Rename: ndb/test/tools/hugoFill/hugoFill.cpp -> ndb/test/tools/hugoFill.cpp ndb/test/tools/hugoLockRecords.cpp: Rename: ndb/test/tools/hugoLockRecords/hugoLockRecords.cpp -> ndb/test/tools/hugoLockRecords.cpp ndb/test/tools/hugoPkRead.cpp: Rename: ndb/test/tools/hugoPkRead/hugoPkRead.cpp -> ndb/test/tools/hugoPkRead.cpp ndb/test/tools/hugoPkReadRecord.cpp: Rename: ndb/test/tools/hugoPkReadRecord/hugoPkReadRecord.cpp -> ndb/test/tools/hugoPkReadRecord.cpp ndb/test/tools/hugoScanRead.cpp: Rename: ndb/test/tools/hugoScanRead/hugoScanRead.cpp -> ndb/test/tools/hugoScanRead.cpp ndb/test/tools/restart.cpp: Rename: ndb/test/tools/restart/restart.cpp -> ndb/test/tools/restart.cpp ndb/test/ndbapi/TraceNdbApi.cpp: Rename: ndb/test/ndbapi/acid2/TraceNdbApi.cpp -> ndb/test/ndbapi/TraceNdbApi.cpp ndb/test/ndbapi/VerifyNdbApi.cpp: Rename: ndb/test/ndbapi/acid2/VerifyNdbApi.cpp -> ndb/test/ndbapi/VerifyNdbApi.cpp ndb/test/ndbapi/acid.cpp: Rename: ndb/test/ndbapi/acid/acid.cpp -> ndb/test/ndbapi/acid.cpp ndb/test/ndbapi/acid2.cpp: Rename: ndb/test/ndbapi/acid2/acid2.cpp -> ndb/test/ndbapi/acid2.cpp ndb/test/ndbapi/bulk_copy.cpp: Rename: ndb/test/ndbapi/bulk_copy/bulk_copy.cpp -> ndb/test/ndbapi/bulk_copy.cpp ndb/test/ndbapi/celloDb.cpp: Rename: ndb/test/ndbapi/cello-sessionDb/celloDb.cpp -> ndb/test/ndbapi/celloDb.cpp ndb/test/ndbapi/create_all_tabs.cpp: Rename: ndb/test/ndbapi/create_all_tabs/create_all_tabs.cpp -> ndb/test/ndbapi/create_all_tabs.cpp ndb/test/ndbapi/create_tab.cpp: Rename: ndb/test/ndbapi/create_tab/create_tab.cpp -> ndb/test/ndbapi/create_tab.cpp ndb/test/ndbapi/drop_all_tabs.cpp: Rename: ndb/test/ndbapi/drop_all_tabs/drop_all_tabs.cpp -> ndb/test/ndbapi/drop_all_tabs.cpp ndb/test/ndbapi/flexAsynch.cpp: Rename: ndb/test/ndbapi/flexAsynch/flexAsynch.cpp -> ndb/test/ndbapi/flexAsynch.cpp ndb/test/ndbapi/flexBench.cpp: Rename: ndb/test/ndbapi/flexBench/flexBench.cpp -> ndb/test/ndbapi/flexBench.cpp ndb/test/ndbapi/flexHammer.cpp: Rename: ndb/test/ndbapi/flexHammer/flexHammer.cpp -> ndb/test/ndbapi/flexHammer.cpp ndb/test/ndbapi/flexScan.cpp: Rename: ndb/test/ndbapi/flexScan/flexScan.cpp -> ndb/test/ndbapi/flexScan.cpp ndb/test/ndbapi/flexTT.cpp: Rename: ndb/test/ndbapi/flexTT/flexTT.cpp -> ndb/test/ndbapi/flexTT.cpp ndb/test/ndbapi/flexTimedAsynch.cpp: Rename: ndb/test/ndbapi/flexTimedAsynch/flexTimedAsynch.cpp -> ndb/test/ndbapi/flexTimedAsynch.cpp ndb/test/ndbapi/flex_bench_mysql.cpp: Rename: ndb/test/ndbapi/flex_bench_mysql/flex_bench_mysql.cpp -> ndb/test/ndbapi/flex_bench_mysql.cpp ndb/test/ndbapi/index.cpp: Rename: ndb/test/ndbapi/indexTest/index.cpp -> ndb/test/ndbapi/index.cpp ndb/test/ndbapi/asyncGenerator.cpp: Rename: ndb/test/ndbapi/lmc-bench/async-src/generator/asyncGenerator.cpp -> ndb/test/ndbapi/asyncGenerator.cpp ndb/test/ndbapi/index2.cpp: Rename: ndb/test/ndbapi/indexTest2/index2.cpp -> ndb/test/ndbapi/index2.cpp ndb/test/ndbapi/interpreterInTup.cpp: Rename: ndb/test/ndbapi/interpreterInTup/interpreterInTup.cpp -> ndb/test/ndbapi/interpreterInTup.cpp ndb/test/ndbapi/mainAsyncGenerator.cpp: Rename: ndb/test/ndbapi/lmc-bench/async-src/generator/mainAsyncGenerator.cpp -> ndb/test/ndbapi/mainAsyncGenerator.cpp ndb/test/ndbapi/ndb_async1.cpp: Rename: ndb/test/ndbapi/lmc-bench/async-src/user/ndb_async1.cpp -> ndb/test/ndbapi/ndb_async1.cpp ndb/test/ndbapi/ndb_async2.cpp: Rename: ndb/test/ndbapi/lmc-bench/async-src/user/ndb_async2.cpp -> ndb/test/ndbapi/ndb_async2.cpp ndb/test/ndbapi/ndb_user_populate.cpp: Rename: ndb/test/ndbapi/lmc-bench/src/user/ndb_user_populate.cpp -> ndb/test/ndbapi/ndb_user_populate.cpp ndb/test/ndbapi/ndb_user_transaction.cpp: Rename: ndb/test/ndbapi/lmc-bench/src/user/ndb_user_transaction.cpp -> ndb/test/ndbapi/ndb_user_transaction.cpp ndb/test/ndbapi/ndb_user_transaction2.cpp: Rename: ndb/test/ndbapi/lmc-bench/src/user/ndb_user_transaction2.cpp -> ndb/test/ndbapi/ndb_user_transaction2.cpp ndb/test/ndbapi/ndb_user_transaction3.cpp: Rename: ndb/test/ndbapi/lmc-bench/src/user/ndb_user_transaction3.cpp -> ndb/test/ndbapi/ndb_user_transaction3.cpp ndb/test/ndbapi/userInterface.cpp: Rename: ndb/test/ndbapi/lmc-bench/async-src/user/userInterface.cpp -> ndb/test/ndbapi/userInterface.cpp ndb/test/ndbapi/benchronja.cpp: Rename: ndb/test/ndbapi/ronja/benchronja/benchronja.cpp -> ndb/test/ndbapi/benchronja.cpp ndb/test/ndbapi/ndb_user_transaction4.cpp: Rename: ndb/test/ndbapi/lmc-bench/src/user/ndb_user_transaction4.cpp -> ndb/test/ndbapi/ndb_user_transaction4.cpp ndb/test/ndbapi/ndb_user_transaction5.cpp: Rename: ndb/test/ndbapi/lmc-bench/src/user/ndb_user_transaction5.cpp -> ndb/test/ndbapi/ndb_user_transaction5.cpp ndb/test/ndbapi/ndb_user_transaction6.cpp: Rename: ndb/test/ndbapi/lmc-bench/src/user/ndb_user_transaction6.cpp -> ndb/test/ndbapi/ndb_user_transaction6.cpp ndb/test/ndbapi/restarter.cpp: Rename: ndb/test/ndbapi/restarter/restarter.cpp -> ndb/test/ndbapi/restarter.cpp ndb/test/ndbapi/restarter2.cpp: Rename: ndb/test/ndbapi/restarter2/restarter2.cpp -> ndb/test/ndbapi/restarter2.cpp ndb/test/ndbapi/restarts.cpp: Rename: ndb/test/ndbapi/restarts/restarts.cpp -> ndb/test/ndbapi/restarts.cpp ndb/test/ndbapi/InsertRecs.cpp: Rename: ndb/test/ndbapi/telco/InsertRecs.cpp -> ndb/test/ndbapi/InsertRecs.cpp ndb/test/ndbapi/adoInsertRecs.cpp: Rename: ndb/test/ndbapi/telco/adoInsertRecs.cpp -> ndb/test/ndbapi/adoInsertRecs.cpp ndb/test/ndbapi/initronja.cpp: Rename: ndb/test/ndbapi/ronja/initronja/initronja.cpp -> ndb/test/ndbapi/initronja.cpp ndb/test/ndbapi/msa.cpp: Rename: ndb/test/ndbapi/telco/msa.cpp -> ndb/test/ndbapi/msa.cpp ndb/test/ndbapi/testBasic.cpp: Rename: ndb/test/ndbapi/testBasic/testBasic.cpp -> ndb/test/ndbapi/testBasic.cpp ndb/test/ndbapi/testDataBuffers.cpp: Rename: ndb/test/ndbapi/testDataBuffers/testDataBuffers.cpp -> ndb/test/ndbapi/testDataBuffers.cpp ndb/test/ndbapi/testDict.cpp: Rename: ndb/test/ndbapi/testDict/testDict.cpp -> ndb/test/ndbapi/testDict.cpp ndb/test/ndbapi/testGrep.cpp: Rename: ndb/test/ndbapi/testGrep/testGrep.cpp -> ndb/test/ndbapi/testGrep.cpp ndb/test/ndbapi/testGrepVerify.cpp: Rename: ndb/test/ndbapi/testGrep/verify/testGrepVerify.cpp -> ndb/test/ndbapi/testGrepVerify.cpp ndb/test/ndbapi/testIndex.cpp: Rename: ndb/test/ndbapi/testIndex/testIndex.cpp -> ndb/test/ndbapi/testIndex.cpp ndb/test/ndbapi/testInterpreter.cpp: Rename: ndb/test/ndbapi/testInterpreter/testInterpreter.cpp -> ndb/test/ndbapi/testInterpreter.cpp ndb/test/ndbapi/testMgm.cpp: Rename: ndb/test/ndbapi/testMgm/testMgm.cpp -> ndb/test/ndbapi/testMgm.cpp ndb/test/ndbapi/testNdbApi.cpp: Rename: ndb/test/ndbapi/testNdbApi/testNdbApi.cpp -> ndb/test/ndbapi/testNdbApi.cpp ndb/test/ndbapi/testNodeRestart.cpp: Rename: ndb/test/ndbapi/testNodeRestart/testNodeRestart.cpp -> ndb/test/ndbapi/testNodeRestart.cpp ndb/test/ndbapi/testOIBasic.cpp: Rename: ndb/test/ndbapi/testOIBasic/testOIBasic.cpp -> ndb/test/ndbapi/testOIBasic.cpp ndb/test/ndbapi/testOperations.cpp: Rename: ndb/test/ndbapi/testOperations/testOperations.cpp -> ndb/test/ndbapi/testOperations.cpp ndb/test/ndbapi/testOrderedIndex.cpp: Rename: ndb/test/ndbapi/testOrderedIndex/testOrderedIndex.cpp -> ndb/test/ndbapi/testOrderedIndex.cpp ndb/test/ndbapi/testRestartGci.cpp: Rename: ndb/test/ndbapi/testRestartGci/testRestartGci.cpp -> ndb/test/ndbapi/testRestartGci.cpp ndb/test/ndbapi/testScan.cpp: Rename: ndb/test/ndbapi/testScan/testScan.cpp -> ndb/test/ndbapi/testScan.cpp ndb/test/ndbapi/testScanInterpreter.cpp: Rename: ndb/test/ndbapi/testScanInterpreter/testScanInterpreter.cpp -> ndb/test/ndbapi/testScanInterpreter.cpp ndb/test/ndbapi/testSystemRestart.cpp: Rename: ndb/test/ndbapi/testSystemRestart/testSystemRestart.cpp -> ndb/test/ndbapi/testSystemRestart.cpp ndb/test/ndbapi/testTimeout.cpp: Rename: ndb/test/ndbapi/testTimeout/testTimeout.cpp -> ndb/test/ndbapi/testTimeout.cpp ndb/test/ndbapi/cdrserver.cpp: Rename: ndb/test/ndbapi/vw_test/cdrserver.cpp -> ndb/test/ndbapi/cdrserver.cpp ndb/test/ndbapi/size.cpp: Rename: ndb/test/ndbapi/vw_test/size.cpp -> ndb/test/ndbapi/size.cpp ndb/test/ndbapi/testTransactions.cpp: Rename: ndb/test/ndbapi/testTransactions/testTransactions.cpp -> ndb/test/ndbapi/testTransactions.cpp ndb/test/ndbapi/test_event.cpp: Rename: ndb/test/ndbapi/test_event/test_event.cpp -> ndb/test/ndbapi/test_event.cpp ndb/tools/delete_all.cpp: Rename: ndb/tools/delete_all/delete_all.cpp -> ndb/tools/delete_all.cpp ndb/tools/desc.cpp: Rename: ndb/tools/desc/desc.cpp -> ndb/tools/desc.cpp ndb/tools/drop_index.cpp: Rename: ndb/tools/drop_index/drop_index.cpp -> ndb/tools/drop_index.cpp ndb/tools/drop_tab.cpp: Rename: ndb/tools/drop_tab/drop_tab.cpp -> ndb/tools/drop_tab.cpp ndb/tools/listTables.cpp: Rename: ndb/tools/list_tables/listTables.cpp -> ndb/tools/listTables.cpp ndb/tools/ndbsql.cpp: Rename: ndb/tools/ndbsql/ndbsql.cpp -> ndb/tools/ndbsql.cpp ndb/tools/select_all.cpp: Rename: ndb/tools/select_all/select_all.cpp -> ndb/tools/select_all.cpp ndb/tools/select_count.cpp: Rename: ndb/tools/select_count/select_count.cpp -> ndb/tools/select_count.cpp ndb/test/tools/hugoScanUpdate.cpp: Rename: ndb/test/tools/hugoScanUpd.cpp -> ndb/test/tools/hugoScanUpdate.cpp ndb/test/tools/hugoPkUpdate.cpp: Rename: ndb/test/tools/hugoPkUpd.cpp -> ndb/test/tools/hugoPkUpdate.cpp ndb/test/tools/hugoPkDelete.cpp: Rename: ndb/test/tools/hugoPkDel.cpp -> ndb/test/tools/hugoPkDelete.cpp ndb/tools/Makefile_old: Rename: ndb/tools/Makefile -> ndb/tools/Makefile_old ndb/test/tools/transproxy.cpp: Rename: ndb/tools/transproxy.cpp -> ndb/test/tools/transproxy.cpp ndb/test/tools/verify_index.cpp: Rename: ndb/tools/verify_index.cpp -> ndb/test/tools/verify_index.cpp ndb/test/tools/copy_tab.cpp: Rename: ndb/tools/copy_tab.cpp -> ndb/test/tools/copy_tab.cpp ndb/test/tools/cpcc.cpp: Rename: ndb/tools/cpcc.cpp -> ndb/test/tools/cpcc.cpp ndb/test/tools/create_index.cpp: Rename: ndb/tools/create_index.cpp -> ndb/test/tools/create_index.cpp ndb/test/tools/old_dirs/waiter/Makefile_old: mvdir ndb/test/tools/old_dirs/waiter/waiter.cpp: mvdir ndb/test/tools/old_dirs/restart/Makefile: mvdir ndb/test/tools/old_dirs/hugoScanUpdate/Makefile: mvdir ndb/test/tools/old_dirs/hugoScanRead/Makefile: mvdir ndb/test/tools/old_dirs/hugoPkUpdate/Makefile: mvdir ndb/test/tools/old_dirs/hugoPkReadRecord/Makefile: mvdir ndb/test/tools/old_dirs/hugoPkRead/Makefile: mvdir ndb/test/tools/old_dirs/hugoPkDelete/Makefile: mvdir ndb/test/tools/old_dirs/hugoLockRecords/Makefile: mvdir ndb/test/tools/old_dirs/hugoLoad/Makefile: mvdir ndb/test/tools/old_dirs/hugoFill/Makefile: mvdir ndb/test/tools/old_dirs/hugoCalculator/Makefile: mvdir ndb/tools/old_dirs/copy_tab/Makefile: mvdir ndb/tools/old_dirs/cpcc/Makefile: mvdir ndb/tools/old_dirs/create_index/Makefile: mvdir ndb/tools/old_dirs/delete_all/Makefile: mvdir ndb/tools/old_dirs/desc/Makefile: mvdir ndb/tools/old_dirs/drop_index/Makefile: mvdir ndb/tools/old_dirs/drop_tab/Makefile: mvdir ndb/tools/old_dirs/list_tables/Makefile: mvdir ndb/tools/old_dirs/select_all/Makefile: mvdir ndb/tools/old_dirs/select_count/Makefile: mvdir ndb/test/tools/old_dirs/transproxy/Makefile: mvdir ndb/test/tools/old_dirs/verify_index/Makefile: mvdir ndb/test/ndbapi/old_dirs/flexTT/Makefile: mvdir ndb/test/ndbapi/old_dirs/flexTimedAsynch/Makefile: mvdir ndb/test/ndbapi/old_dirs/flexHammer/Makefile: mvdir ndb/test/ndbapi/old_dirs/flexHammer/README: mvdir ndb/test/ndbapi/old_dirs/flexBench/Makefile.am: mvdir ndb/test/ndbapi/old_dirs/flexBench/Makefile_old: mvdir ndb/test/ndbapi/old_dirs/flexBench/ndbplot.pl: mvdir ndb/test/ndbapi/old_dirs/flexAsynch/Makefile: mvdir ndb/test/ndbapi/old_dirs/drop_all_tabs/Makefile: mvdir ndb/test/ndbapi/old_dirs/create_tab/Makefile: mvdir ndb/test/ndbapi/old_dirs/testOIBasic/Makefile: mvdir ndb/test/ndbapi/old_dirs/testOIBasic/times.txt: mvdir ndb/test/ndbapi/old_dirs/testNodeRestart/Makefile: mvdir ndb/test/ndbapi/old_dirs/testOperations/Makefile: mvdir ndb/test/ndbapi/old_dirs/testBlobs/Makefile: mvdir ndb/test/ndbapi/old_dirs/testBackup/Makefile: mvdir ndb/test/ndbapi/old_dirs/testDict/Makefile: mvdir ndb/test/ndbapi/old_dirs/test_event/Makefile: mvdir ndb/test/ndbapi/old_dirs/testTransactions/Makefile: mvdir ndb/test/ndbapi/old_dirs/testTimeout/Makefile: mvdir ndb/test/ndbapi/old_dirs/testSystemRestart/Makefile: mvdir ndb/test/ndbapi/old_dirs/testScanInterpreter/Makefile: mvdir ndb/test/ndbapi/old_dirs/testDataBuffers/Makefile: mvdir ndb/test/ndbapi/old_dirs/testIndex/Makefile: mvdir ndb/test/ndbapi/old_dirs/testMgm/Makefile: mvdir ndb/test/ndbapi/old_dirs/restarter/Makefile: mvdir ndb/test/ndbapi/old_dirs/flexScan/Makefile: mvdir ndb/test/ndbapi/old_dirs/flexScan/README: mvdir ndb/test/ndbapi/old_dirs/testRestartGci/Makefile: mvdir ndb/test/ndbapi/old_dirs/flex_bench_mysql/Makefile: mvdir ndb/test/ndbapi/old_dirs/indexTest/Makefile: mvdir ndb/test/ndbapi/old_dirs/indexTest2/Makefile: mvdir ndb/test/ndbapi/old_dirs/testBasic/Makefile: mvdir ndb/test/ndbapi/old_dirs/basicAsynch/Makefile: mvdir ndb/test/ndbapi/old_dirs/create_all_tabs/Makefile: mvdir ndb/test/ndbapi/old_dirs/testNdbApi/Makefile: mvdir ndb/test/ndbapi/old_dirs/testOrderedIndex/Makefile: mvdir ndb/test/ndbapi/old_dirs/restarter2/Makefile: mvdir ndb/test/ndbapi/old_dirs/telco/Makefile: mvdir ndb/test/ndbapi/old_dirs/telco/readme: mvdir ndb/test/ndbapi/old_dirs/acid/Makefile: mvdir ndb/test/ndbapi/old_dirs/acid2/Makefile: mvdir ndb/test/ndbapi/old_dirs/acid2/TraceNdbApi.hpp: mvdir ndb/test/ndbapi/old_dirs/acid2/VerifyNdbApi.hpp: mvdir ndb/test/ndbapi/old_dirs/interpreterInTup/Makefile: mvdir ndb/test/ndbapi/old_dirs/ronja/Makefile: mvdir ndb/test/ndbapi/old_dirs/ronja/benchronja/Makefile: mvdir ndb/test/ndbapi/old_dirs/ronja/initronja/Makefile: mvdir ndb/test/ndbapi/old_dirs/testScan/Makefile: mvdir ndb/test/ndbapi/old_dirs/vw_test/Makefile: mvdir ndb/test/ndbapi/old_dirs/vw_test/bcd.h: mvdir ndb/test/ndbapi/old_dirs/vw_test/utv.h: mvdir ndb/test/ndbapi/old_dirs/vw_test/vcdrfunc.h: mvdir ndb/test/ndbapi/old_dirs/vw_test/script/client_start: mvdir ndb/test/ndbapi/old_dirs/testGrep/Makefile: mvdir ndb/test/ndbapi/old_dirs/testGrep/verify/Makefile: mvdir ndb/test/ndbapi/old_dirs/testInterpreter/Makefile: mvdir ndb/test/ndbapi/old_dirs/restarts/Makefile: mvdir ndb/test/ndbapi/old_dirs/bulk_copy/Makefile: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/Makefile: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/async-src/Makefile: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/async-src/generator/Makefile: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/async-src/include/dbGenerator.h: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/async-src/include/testData.h: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/async-src/include/userInterface.h: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/async-src/user/Makefile: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/async-src/user/macros.h: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/async-src/user/ndb_error.hpp: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/bin/.empty: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/include/ndb_schema.hpp: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/include/testDefinitions.h: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/lib/.empty: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/script/Makefile: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/script/async-lmc-bench-l-p10.sh: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/script/async-lmc-bench-l.sh: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/script/async-lmc-bench-p10.sh: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/script/async-lmc-bench.sh: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/Makefile: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/README: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/generator/Makefile: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/generator/dbGenerator.c: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/makevars.linux: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/makevars.sparc: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/generator/dbGenerator.h: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/generator/mainGenerator.c: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/include/testData.h: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/include/userInterface.h: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/populator/Makefile: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/populator/dbPopulate.c: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/populator/dbPopulate.h: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/populator/mainPopulate.c: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/user/Makefile: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/user/localDbPrepare.c: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/user/macros.h: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/user/ndb_error.hpp: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/user/old/Makefile: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/user/old/userHandle.h: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/user/old/userInterface.c: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/user/old/userTransaction.c: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/user/userHandle.h: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/user/userInterface.cpp: mvdir ndb/test/ndbapi/old_dirs/lmc-bench/src/user/userTransaction.c: mvdir ndb/test/ndbapi/testBasicAsynch.cpp: Change mode to -rw-rw-r-- ndb/tools/old_dirs/ndbnet/Makefile.PL: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Net.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Base.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Client.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Command.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Config.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Run.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Util.pm: mvdir ndb/tools/old_dirs/ndbnet/ndbnet.pl: mvdir ndb/tools/old_dirs/ndbnet/ndbnetd.pl: mvdir ndb/tools/old_dirs/ndbnet/ndbrun: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Database.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Env.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Node.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeApi.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeDb.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Net/NodeMgmt.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Net/Server.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Net/ServerINET.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Net/ServerUNIX.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Base.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Database.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Env.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Run/Node.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Base.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Dir.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Event.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Util/File.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Util/IO.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Lock.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Log.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Util/Socket.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Util/SocketINET.pm: mvdir ndb/tools/old_dirs/ndbnet/lib/NDB/Util/SocketUNIX.pm: mvdir ndb/tools/old_dirs/ndbsql/Makefile: mvdir ndb/tools/old_dirs/src/counterviewer/CounterViewer.java: mvdir ndb/test/ndbapi/bank/Bank.hpp: mvdir ndb/test/ndbapi/bank/Makefile_old: Rename: ndb/test/ndbapi/bank/Makefile -> ndb/test/ndbapi/bank/Makefile_old ndb/test/ndbapi/bank/old_dirs/bankCreator/Makefile: mvdir ndb/test/ndbapi/bank/old_dirs/bankSumAccounts/Makefile: mvdir ndb/test/ndbapi/bank/old_dirs/bankMakeGL/Makefile: mvdir ndb/test/ndbapi/bank/old_dirs/bankTimer/Makefile: mvdir ndb/test/ndbapi/bank/old_dirs/bankValidateAllGLs/Makefile: mvdir ndb/test/ndbapi/bank/old_dirs/bankTransactionMaker/Makefile: mvdir ndb/test/ndbapi/bank/old_dirs/src/Makefile: mvdir ndb/test/ndbapi/bank/old_dirs/testBank/Makefile: mvdir ndb/test/ndbapi/ScanFilter.hpp: Rename: ndb/test/ndbapi/old_dirs/testScanInterpreter/ScanFilter.hpp -> ndb/test/ndbapi/ScanFilter.hpp ndb/test/ndbapi/ScanInterpretTest.hpp: Rename: ndb/test/ndbapi/old_dirs/testScanInterpreter/ScanInterpretTest.hpp -> ndb/test/ndbapi/ScanInterpretTest.hpp ndb/test/ndbapi/ScanFunctions.hpp: Rename: ndb/test/ndbapi/old_dirs/testScan/ScanFunctions.hpp -> ndb/test/ndbapi/ScanFunctions.hpp
This commit is contained in:
616
ndb/test/ndbapi/testDataBuffers.cpp
Normal file
616
ndb/test/ndbapi/testDataBuffers.cpp
Normal file
@ -0,0 +1,616 @@
|
||||
/* Copyright (C) 2003 MySQL AB
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||
|
||||
/*
|
||||
* testDataBuffers
|
||||
*
|
||||
* Test getValue() of byte arrays:
|
||||
* - using application buffers of different alignments and sizes
|
||||
* - using NdbApi allocated small (<32) and big (>=32) buffers
|
||||
*
|
||||
* Verifies fixes to tickets 189 and 206.
|
||||
*
|
||||
* Options: see printusage() below.
|
||||
*
|
||||
* Creates tables TB00 to TB15
|
||||
*/
|
||||
|
||||
#include <ndb_global.h>
|
||||
|
||||
#include <NdbMain.h>
|
||||
#include <NdbOut.hpp>
|
||||
#include <NdbApi.hpp>
|
||||
#include <NdbTest.hpp>
|
||||
|
||||
// limits
|
||||
static int const MaxAttr = 64;
|
||||
static int const MaxOper = 1000;
|
||||
static int const MaxSize = 10000;
|
||||
static int const MaxOff = 64; // max offset to add to data buffer
|
||||
static int const MaxData = MaxSize + MaxOff + 100;
|
||||
|
||||
// options
|
||||
static int attrcnt = 25;
|
||||
static int existok = 0;
|
||||
static bool kontinue = false;
|
||||
static int loopcnt = 1;
|
||||
static int opercnt = 100; // also does this many scans
|
||||
static int randomizer = 171317;
|
||||
static int sizelim = 500;
|
||||
static int xverbose = 0;
|
||||
|
||||
static void printusage() {
|
||||
ndbout
|
||||
<< "usage: testDataBuffers options [default/max]"
|
||||
<< endl
|
||||
<< "NOTE: too large combinations result in NDB error"
|
||||
<< endl
|
||||
<< "-a N number of attributes (including the key) [25/64]"
|
||||
<< endl
|
||||
<< "-e no error if table exists (assumed to have same structure)"
|
||||
<< endl
|
||||
<< "-k on error continue with next test case"
|
||||
<< endl
|
||||
<< "-l N number of loops to run, 0 means infinite [1]"
|
||||
<< endl
|
||||
<< "-o N number of operations (rows in each table) [100/1000]"
|
||||
<< endl
|
||||
<< "-r N source of randomness (big number (prime)) [171317]"
|
||||
<< endl
|
||||
<< "-s N array size limit (rounded up in some tests) [500/10000]"
|
||||
<< endl
|
||||
<< "-x extremely verbose"
|
||||
<< endl
|
||||
<< "Tables: TB00 .. TB15"
|
||||
<< endl
|
||||
;
|
||||
}
|
||||
|
||||
static Ndb* ndb = 0;
|
||||
static NdbSchemaCon* tcon = 0;
|
||||
static NdbSchemaOp* top = 0;
|
||||
static NdbConnection* con = 0;
|
||||
static NdbOperation* op = 0;
|
||||
|
||||
static int
|
||||
ndberror(char const* fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
char buf[200];
|
||||
va_start(ap, fmt);
|
||||
vsnprintf(buf, sizeof(buf), fmt, ap);
|
||||
va_end(ap);
|
||||
ndbout << buf << " --" << endl;
|
||||
if (ndb)
|
||||
ndbout << "ndb : " << ndb->getNdbError() << endl;
|
||||
if (tcon)
|
||||
ndbout << "tcon: " << tcon->getNdbError() << endl;
|
||||
if (top)
|
||||
ndbout << "top : " << top->getNdbError() << endl;
|
||||
if (con)
|
||||
ndbout << "con : " << con->getNdbError() << endl;
|
||||
if (op)
|
||||
ndbout << "op : " << op->getNdbError() << endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int
|
||||
chkerror(char const* fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
char buf[200];
|
||||
va_start(ap, fmt);
|
||||
vsnprintf(buf, sizeof(buf), fmt, ap);
|
||||
va_end(ap);
|
||||
ndbout << "*** check failed: " << buf << " ***" << endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
// alignment of addresses and data sizes
|
||||
|
||||
static bool isAligned(unsigned x)
|
||||
{
|
||||
return ((x & 3) == 0);
|
||||
}
|
||||
static bool isAligned(char* p)
|
||||
{
|
||||
return isAligned(unsigned(p));
|
||||
}
|
||||
static unsigned toAligned(unsigned x)
|
||||
{
|
||||
while (! isAligned(x))
|
||||
x++;
|
||||
return x;
|
||||
}
|
||||
static char* toAligned(char* p)
|
||||
{
|
||||
while (! isAligned(p))
|
||||
p++;
|
||||
return p;
|
||||
}
|
||||
|
||||
// byte value for key k column i byte j
|
||||
static int byteVal(int k, int i, int j)
|
||||
{
|
||||
return '0' + (k + i + j) % 10;
|
||||
}
|
||||
|
||||
// tables
|
||||
|
||||
static char tab[20] = "";
|
||||
|
||||
static struct col {
|
||||
char aAttrName[20];
|
||||
AttrType aAttrType;
|
||||
int aAttrSize;
|
||||
int aArraySize;
|
||||
KeyType aTupleKey;
|
||||
bool nullable;
|
||||
NdbRecAttr* aRa;
|
||||
char* buf;
|
||||
int bufsiz;
|
||||
char data[MaxData];
|
||||
} ccol[MaxAttr];
|
||||
|
||||
static int key = 0;
|
||||
|
||||
// independent test bits
|
||||
static bool alignAddr; // align our buffer addresses to 4x
|
||||
static bool alignSize; // align data sizes to 4x
|
||||
static bool useBuf; // use our buffers for output
|
||||
static bool noRandom; // do not randomize sizes and offsets
|
||||
static int testbits = 4;
|
||||
|
||||
static int
|
||||
makeSize(int i)
|
||||
{
|
||||
int n;
|
||||
if (noRandom)
|
||||
n = i;
|
||||
else
|
||||
n = i * randomizer;
|
||||
n %= sizelim;
|
||||
if (n <= 0)
|
||||
n = 1;
|
||||
if (alignSize)
|
||||
n = toAligned(n);
|
||||
return n;
|
||||
}
|
||||
|
||||
static int
|
||||
makeOff(int k)
|
||||
{
|
||||
int n;
|
||||
if (alignAddr)
|
||||
n = 0;
|
||||
else if (noRandom)
|
||||
n = k;
|
||||
else
|
||||
n = k * randomizer;
|
||||
n %= MaxOff;
|
||||
if (n < 0)
|
||||
n = -n;
|
||||
return n;
|
||||
}
|
||||
|
||||
static int
|
||||
testcase(int flag)
|
||||
{
|
||||
ndbout << "--- case " << flag << " ---" << endl;
|
||||
sprintf(tab, "TB%02d", flag);
|
||||
|
||||
alignAddr = ! (flag & 1);
|
||||
ndbout << (alignAddr ? "align addresses" : "mis-align addresses") << endl;
|
||||
alignSize = ! (flag & 2);
|
||||
ndbout << (alignSize ? "align data sizes" : "mis-align data sizes") << endl;
|
||||
useBuf = ! (flag & 4);
|
||||
ndbout << (useBuf ? "use our buffers" : "use ndbapi buffers") << endl;
|
||||
noRandom = ! (flag & 8);
|
||||
ndbout << (noRandom ? "simple sizes" : "randomize sizes") << endl;
|
||||
|
||||
int smax = 0, stot = 0;
|
||||
if (xverbose)
|
||||
ndbout << "- define table " << tab << endl;
|
||||
for (int i = 0; i < attrcnt; i++) {
|
||||
col& c = ccol[i];
|
||||
memset(&c, 0, sizeof(c));
|
||||
sprintf(c.aAttrName, "C%d", i);
|
||||
if (i == 0) {
|
||||
c.aAttrType = UnSigned;
|
||||
c.aAttrSize = 32;
|
||||
c.aArraySize = 1;
|
||||
c.aTupleKey = TupleKey;
|
||||
c.nullable = false;
|
||||
} else {
|
||||
c.aAttrType = String;
|
||||
c.aAttrSize = 8;
|
||||
c.aArraySize = makeSize(i);
|
||||
if (smax < c.aArraySize)
|
||||
smax = c.aArraySize;
|
||||
stot += c.aArraySize;
|
||||
c.aTupleKey = NoKey;
|
||||
c.nullable = true;
|
||||
if (xverbose)
|
||||
ndbout << "-- column " << i << " size=" << c.aArraySize << endl;
|
||||
}
|
||||
c.buf = toAligned(c.data);
|
||||
c.bufsiz = sizeof(c.data) - (c.buf - c.data);
|
||||
}
|
||||
ndbout << "tab=" << tab << " cols=" << attrcnt
|
||||
<< " size max=" << smax << " tot=" << stot << endl;
|
||||
|
||||
ndb = new Ndb("TEST_DB");
|
||||
if (ndb->init() != 0)
|
||||
return ndberror("init");
|
||||
if (ndb->waitUntilReady(30) < 0)
|
||||
return ndberror("waitUntilReady");
|
||||
|
||||
if ((tcon = ndb->startSchemaTransaction()) == 0)
|
||||
return ndberror("startSchemaTransaction");
|
||||
if ((top = tcon->getNdbSchemaOp()) == 0)
|
||||
return ndberror("getNdbSchemaOp");
|
||||
if (top->createTable(tab) < 0)
|
||||
return ndberror("createTable");
|
||||
for (int i = 0; i < attrcnt; i++) {
|
||||
col& c = ccol[i];
|
||||
if (top->createAttribute(
|
||||
c.aAttrName,
|
||||
c.aTupleKey,
|
||||
c.aAttrSize,
|
||||
c.aArraySize,
|
||||
c.aAttrType,
|
||||
MMBased,
|
||||
c.nullable
|
||||
) < 0)
|
||||
return ndberror("createAttribute col=%d", i);
|
||||
}
|
||||
if (tcon->execute() < 0) {
|
||||
if (! (tcon->getNdbError().code == 721 && existok))
|
||||
return ndberror("execute");
|
||||
ndbout << "using " << tab << endl;
|
||||
} else {
|
||||
ndbout << "created " << tab << endl;
|
||||
}
|
||||
top = 0;
|
||||
tcon = 0;
|
||||
|
||||
if (xverbose)
|
||||
ndbout << "- delete" << endl;
|
||||
int delcnt = 0;
|
||||
for (key = 0; key < opercnt; key++) {
|
||||
if ((con = ndb->startTransaction()) == 0)
|
||||
return ndberror("startTransaction key=%d", key);
|
||||
if ((op = con->getNdbOperation(tab)) == 0)
|
||||
return ndberror("getNdbOperation key=%d", key);
|
||||
if (op->deleteTuple() < 0)
|
||||
return ndberror("deleteTuple key=%d", key);
|
||||
for (int i = 0; i < attrcnt; i++) {
|
||||
col& c = ccol[i];
|
||||
if (i == 0) {
|
||||
if (op->equal(c.aAttrName, (char*)&key, sizeof(key)) < 0)
|
||||
return ndberror("equal key=%d", key);
|
||||
} else {
|
||||
}
|
||||
}
|
||||
if (con->execute(Commit) < 0) {
|
||||
if (con->getNdbError().code != 626)
|
||||
return ndberror("execute key=%d", key);
|
||||
} else {
|
||||
delcnt++;
|
||||
}
|
||||
ndb->closeTransaction(con);
|
||||
}
|
||||
con = 0;
|
||||
op = 0;
|
||||
ndbout << "deleted " << delcnt << endl;
|
||||
|
||||
if (xverbose)
|
||||
ndbout << "- insert" << endl;
|
||||
for (key = 0; key < opercnt; key++) {
|
||||
int off = makeOff(key);
|
||||
if ((con = ndb->startTransaction()) == 0)
|
||||
return ndberror("startTransaction key=%d", key);
|
||||
if ((op = con->getNdbOperation(tab)) == 0)
|
||||
return ndberror("getNdbOperation key=%d", key);
|
||||
if (op->insertTuple() < 0)
|
||||
return ndberror("insertTuple key=%d", key);
|
||||
for (int i = 0; i < attrcnt; i++) {
|
||||
col& c = ccol[i];
|
||||
if (i == 0) {
|
||||
if (op->equal(c.aAttrName, (char*)&key, sizeof(key)) < 0)
|
||||
return ndberror("equal key=%d", key);
|
||||
} else {
|
||||
memset(c.buf, 'A', c.bufsiz);
|
||||
for (int j = 0; j < c.aArraySize; j++)
|
||||
c.buf[j + off] = byteVal(key, i, j);
|
||||
if (op->setValue(c.aAttrName, c.buf + off, c.aArraySize) < 0)
|
||||
return ndberror("setValue key=%d col=%d", key, i);
|
||||
}
|
||||
}
|
||||
if (con->execute(Commit) < 0)
|
||||
return ndberror("execute key=%d", key);
|
||||
ndb->closeTransaction(con);
|
||||
}
|
||||
con = 0;
|
||||
op = 0;
|
||||
ndbout << "inserted " << key << endl;
|
||||
|
||||
if (xverbose)
|
||||
ndbout << "- select" << endl;
|
||||
for (key = 0; key < opercnt; key++) {
|
||||
int off = makeOff(key);
|
||||
if (xverbose)
|
||||
ndbout << "-- key " << key << " off=" << off << endl;
|
||||
if ((con = ndb->startTransaction()) == 0)
|
||||
return ndberror("startTransaction key=%d", key);
|
||||
if ((op = con->getNdbOperation(tab)) == 0)
|
||||
return ndberror("getNdbOperation key=%d", key);
|
||||
if (op->readTuple() < 0)
|
||||
return ndberror("readTuple key=%d", key);
|
||||
for (int i = 0; i < attrcnt; i++) {
|
||||
col& c = ccol[i];
|
||||
if (i == 0) {
|
||||
if (op->equal(c.aAttrName, (char*)&key, sizeof(key)) < 0)
|
||||
return ndberror("equal key=%d", key);
|
||||
} else {
|
||||
if (xverbose) {
|
||||
char tmp[20];
|
||||
if (useBuf)
|
||||
sprintf(tmp, "0x%x", int(c.buf + off));
|
||||
else
|
||||
strcpy(tmp, "ndbapi");
|
||||
ndbout << "--- column " << i << " addr=" << tmp << endl;
|
||||
}
|
||||
memset(c.buf, 'B', c.bufsiz);
|
||||
if (useBuf) {
|
||||
if (op->getValue(c.aAttrName, c.buf + off) < 0)
|
||||
return ndberror("getValue key=%d col=%d", key, i);
|
||||
} else {
|
||||
if ((c.aRa = op->getValue(c.aAttrName)) == 0)
|
||||
return ndberror("getValue key=%d col=%d", key, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (con->execute(Commit) != 0)
|
||||
return ndberror("execute key=%d", key);
|
||||
for (int i = 0; i < attrcnt; i++) {
|
||||
col& c = ccol[i];
|
||||
if (i == 0) {
|
||||
} else if (useBuf) {
|
||||
for (int j = 0; j < off; j++) {
|
||||
if (c.buf[j] != 'B') {
|
||||
return chkerror("mismatch before key=%d col=%d pos=%d ok=%02x bad=%02x",
|
||||
key, i, j, 'B', c.buf[j]);
|
||||
}
|
||||
}
|
||||
for (int j = 0; j < c.aArraySize; j++) {
|
||||
if (c.buf[j + off] != byteVal(key, i, j)) {
|
||||
return chkerror("mismatch key=%d col=%d pos=%d ok=%02x bad=%02x",
|
||||
key, i, j, byteVal(key, i, j), c.buf[j]);
|
||||
}
|
||||
}
|
||||
for (int j = c.aArraySize + off; j < c.bufsiz; j++) {
|
||||
if (c.buf[j] != 'B') {
|
||||
return chkerror("mismatch after key=%d col=%d pos=%d ok=%02x bad=%02x",
|
||||
key, i, j, 'B', c.buf[j]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
char* buf = c.aRa->aRef();
|
||||
if (buf == 0)
|
||||
return ndberror("null aRef key=%d col%d", key, i);
|
||||
for (int j = 0; j < c.aArraySize; j++) {
|
||||
if (buf[j] != byteVal(key, i, j)) {
|
||||
return chkerror("mismatch key=%d col=%d pos=%d ok=%02x bad=%02x",
|
||||
key, i, j, byteVal(key, i, j), buf[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
ndb->closeTransaction(con);
|
||||
}
|
||||
con = 0;
|
||||
op = 0;
|
||||
ndbout << "selected " << key << endl;
|
||||
|
||||
if (xverbose)
|
||||
ndbout << "- scan" << endl;
|
||||
char found[MaxOper];
|
||||
for (int k = 0; k < opercnt; k++)
|
||||
found[k] = 0;
|
||||
for (key = 0; key < opercnt; key++) {
|
||||
int off = makeOff(key);
|
||||
if (xverbose)
|
||||
ndbout << "-- key " << key << " off=" << off << endl;
|
||||
int newkey = 0;
|
||||
if ((con = ndb->startTransaction()) == 0)
|
||||
return ndberror("startTransaction key=%d", key);
|
||||
if ((op = con->getNdbOperation(tab)) == 0)
|
||||
return ndberror("getNdbOperation key=%d", key);
|
||||
if (op->openScanRead(1) < 0)
|
||||
return ndberror("openScanRead key=%d", key);
|
||||
{
|
||||
col& c = ccol[0];
|
||||
if (op->load_const_u32(1, key) < 0)
|
||||
return ndberror("load_const_u32");
|
||||
if (op->read_attr(c.aAttrName, 2) < 0)
|
||||
return ndberror("read_attr");
|
||||
if (op->branch_eq(1, 2, 0) < 0)
|
||||
return ndberror("branch_eq");
|
||||
if (op->interpret_exit_nok() < 0)
|
||||
return ndberror("interpret_exit_nok");
|
||||
if (op->def_label(0) < 0)
|
||||
return ndberror("def_label");
|
||||
if (op->interpret_exit_ok() < 0)
|
||||
return ndberror("interpret_exit_ok");
|
||||
}
|
||||
for (int i = 0; i < attrcnt; i++) {
|
||||
col& c = ccol[i];
|
||||
if (i == 0) {
|
||||
if (op->getValue(c.aAttrName, (char*)&newkey) < 0)
|
||||
return ndberror("getValue key=%d col=%d", key, i);
|
||||
} else {
|
||||
if (xverbose) {
|
||||
char tmp[20];
|
||||
if (useBuf)
|
||||
sprintf(tmp, "0x%x", int(c.buf + off));
|
||||
else
|
||||
strcpy(tmp, "ndbapi");
|
||||
ndbout << "--- column " << i << " addr=" << tmp << endl;
|
||||
}
|
||||
memset(c.buf, 'C', c.bufsiz);
|
||||
if (useBuf) {
|
||||
if (op->getValue(c.aAttrName, c.buf + off) < 0)
|
||||
return ndberror("getValue key=%d col=%d", key, i);
|
||||
} else {
|
||||
if ((c.aRa = op->getValue(c.aAttrName)) == 0)
|
||||
return ndberror("getValue key=%d col=%d", key, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (con->executeScan() < 0)
|
||||
return ndberror("executeScan key=%d", key);
|
||||
int ret, cnt = 0;
|
||||
while ((ret = con->nextScanResult()) == 0) {
|
||||
if (key != newkey)
|
||||
return ndberror("unexpected key=%d newkey=%d", key, newkey);
|
||||
for (int i = 1; i < attrcnt; i++) {
|
||||
col& c = ccol[i];
|
||||
if (useBuf) {
|
||||
for (int j = 0; j < off; j++) {
|
||||
if (c.buf[j] != 'C') {
|
||||
return chkerror("mismatch before key=%d col=%d pos=%d ok=%02x bad=%02x",
|
||||
key, i, j, 'C', c.buf[j]);
|
||||
}
|
||||
}
|
||||
for (int j = 0; j < c.aArraySize; j++) {
|
||||
if (c.buf[j + off] != byteVal(key, i, j)) {
|
||||
return chkerror("mismatch key=%d col=%d pos=%d ok=%02x bad=%02x",
|
||||
key, i, j, byteVal(key, i, j), c.buf[j]);
|
||||
}
|
||||
}
|
||||
for (int j = c.aArraySize + off; j < c.bufsiz; j++) {
|
||||
if (c.buf[j] != 'C') {
|
||||
return chkerror("mismatch after key=%d col=%d pos=%d ok=%02x bad=%02x",
|
||||
key, i, j, 'C', c.buf[j]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
char* buf = c.aRa->aRef();
|
||||
if (buf == 0)
|
||||
return ndberror("null aRef key=%d col%d", key, i);
|
||||
for (int j = 0; j < c.aArraySize; j++) {
|
||||
if (buf[j] != byteVal(key, i, j)) {
|
||||
return chkerror("mismatch key=%d col=%d pos=%d ok=%02x bad=%02x",
|
||||
key, i, j, byteVal(key, i, j), buf[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
cnt++;
|
||||
}
|
||||
if (ret < 0)
|
||||
return ndberror("nextScanResult key=%d", key);
|
||||
if (cnt != 1)
|
||||
return ndberror("scan key=%d found %d", key, cnt);
|
||||
found[key] = 1;
|
||||
ndb->closeTransaction(con);
|
||||
}
|
||||
con = 0;
|
||||
op = 0;
|
||||
for (int k = 0; k < opercnt; k++)
|
||||
if (! found[k])
|
||||
return ndberror("key %d not found", k);
|
||||
ndbout << "scanned " << key << endl;
|
||||
|
||||
ndb = 0;
|
||||
ndbout << "done" << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
NDB_COMMAND(testDataBuffers, "testDataBuffers", "testDataBuffers", "testDataBuffers", 65535)
|
||||
{
|
||||
while (++argv, --argc > 0) {
|
||||
char const* p = argv[0];
|
||||
if (*p++ != '-' || strlen(p) != 1)
|
||||
goto wrongargs;
|
||||
switch (*p) {
|
||||
case 'a':
|
||||
if (++argv, --argc > 0) {
|
||||
attrcnt = atoi(argv[0]);
|
||||
if (1 <= attrcnt && attrcnt <= MaxAttr)
|
||||
break;
|
||||
}
|
||||
goto wrongargs;
|
||||
case 'e':
|
||||
existok = 1;
|
||||
break;
|
||||
case 'k':
|
||||
kontinue = true;
|
||||
break;
|
||||
case 'l':
|
||||
if (++argv, --argc > 0) {
|
||||
loopcnt = atoi(argv[0]);
|
||||
if (0 <= loopcnt)
|
||||
break;
|
||||
}
|
||||
goto wrongargs;
|
||||
case 'o':
|
||||
if (++argv, --argc > 0) {
|
||||
opercnt = atoi(argv[0]);
|
||||
if (0 <= opercnt && opercnt <= MaxOper)
|
||||
break;
|
||||
}
|
||||
goto wrongargs;
|
||||
case 'r':
|
||||
if (++argv, --argc > 0) {
|
||||
randomizer = atoi(argv[0]);
|
||||
if (1 <= randomizer)
|
||||
break;
|
||||
}
|
||||
goto wrongargs;
|
||||
case 's':
|
||||
if (++argv, --argc > 0) {
|
||||
sizelim = atoi(argv[0]);
|
||||
if (1 <= sizelim && sizelim <= MaxSize)
|
||||
break;
|
||||
}
|
||||
goto wrongargs;
|
||||
case 'x':
|
||||
xverbose = 1;
|
||||
break;
|
||||
default:
|
||||
wrongargs:
|
||||
printusage();
|
||||
return NDBT_ProgramExit(NDBT_WRONGARGS);
|
||||
}
|
||||
}
|
||||
unsigned ok = true;
|
||||
for (int i = 1; 0 == loopcnt || i <= loopcnt; i++) {
|
||||
ndbout << "=== loop " << i << " ===" << endl;
|
||||
for (int flag = 0; flag < (1<<testbits); flag++) {
|
||||
if (testcase(flag) < 0) {
|
||||
ok = false;
|
||||
if (! kontinue)
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
}
|
||||
out:
|
||||
return NDBT_ProgramExit(ok ? NDBT_OK : NDBT_FAILED);
|
||||
}
|
||||
|
||||
// vim: set sw=4:
|
Reference in New Issue
Block a user