Files
five/examples/test_all_rdd.prg
Charles KWON OhJun 59568f3301 Five v0.9 — Harbour + Go fusion language
- Compiler: PP → Lexer → Parser → Analyzer → Gengo pipeline
- Parser: 232/236 (98%) Harbour compatibility, registry-based dispatch
- RTL: 351 Harbour-compatible functions
- RDD: DBF/NTX/CDX engines with Rushmore bitmap optimization
- Go Interop: IMPORT + pkg.Func() + obj:Method() with FastPath (15M calls/sec)
- HB_FUNC API: Full Harbour C API compatible Go bridge
- Concurrency: SPAWN/LAUNCH/GOROUTINE, <-, WATCH, PARALLEL FOR, ASYNC/AWAIT
- Extensions: Multi-return, DEFER, Slice, f-string, Nil-safe ?:, CONST
- Macro Compiler: Runtime AST parsing and evaluation
- Debugger: TUI debugger with source display, breakpoints, stepping
- FRB: Native + Pcode dual mode runtime binary
- Tests: 13 packages ALL PASS

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 09:41:50 +09:00

166 lines
3.9 KiB
Plaintext

// All RDD Drivers Test — DBFNTX, DBFCDX, SIXCDX, DBFNSX simultaneously
// Copyright (c) 2026 Charles KWON OhJun (charleskwonohjun@gmail.com)
FUNCTION Main()
LOCAL i
? "============================================"
? " All RDD Drivers Simultaneous Test"
? "============================================"
? ""
// Show available drivers
? "Available drivers:", RddList()
? "Default RDD:", RddName()
? ""
// === Create 4 databases ===
? "1. Creating 4 databases..."
dbCreate("rdd_ntx", {{"ID","N",6,0},{"NAME","C",15,0},{"TYPE","C",10,0}})
dbCreate("rdd_cdx", {{"ID","N",6,0},{"NAME","C",15,0},{"TYPE","C",10,0}})
dbCreate("rdd_six", {{"ID","N",6,0},{"NAME","C",15,0},{"TYPE","C",10,0}})
dbCreate("rdd_nsx", {{"ID","N",6,0},{"NAME","C",15,0},{"TYPE","C",10,0}})
? " 4 databases created"
? ""
// === Open each with different VIA driver ===
? "2. Opening with different drivers..."
SELECT 1
USE "rdd_ntx" ALIAS NTX_DB
? " Area 1: DBFNTX"
SELECT 2
USE "rdd_cdx" ALIAS CDX_DB
? " Area 2: DBFCDX"
SELECT 3
USE "rdd_six" ALIAS SIX_DB
? " Area 3: SIXCDX"
SELECT 4
USE "rdd_nsx" ALIAS NSX_DB
? " Area 4: DBFNSX"
? ""
// === Populate all areas ===
? "3. Populating all areas with 30 records each..."
FOR i := 1 TO 30
SELECT 1
APPEND BLANK
FieldPut(1, i)
FieldPut(2, {"Alpha","Bravo","Charlie","Delta","Echo","Fox"}[Int(Mod(i-1,6))+1])
FieldPut(3, "NTX")
SELECT 2
APPEND BLANK
FieldPut(1, i)
FieldPut(2, {"Alpha","Bravo","Charlie","Delta","Echo","Fox"}[Int(Mod(i-1,6))+1])
FieldPut(3, "CDX")
SELECT 3
APPEND BLANK
FieldPut(1, i)
FieldPut(2, {"Alpha","Bravo","Charlie","Delta","Echo","Fox"}[Int(Mod(i-1,6))+1])
FieldPut(3, "SIX")
SELECT 4
APPEND BLANK
FieldPut(1, i)
FieldPut(2, {"Alpha","Bravo","Charlie","Delta","Echo","Fox"}[Int(Mod(i-1,6))+1])
FieldPut(3, "NSX")
NEXT
SELECT 1
? " NTX records:", RecCount()
SELECT 2
? " CDX records:", RecCount()
SELECT 3
? " SIX records:", RecCount()
SELECT 4
? " NSX records:", RecCount()
? ""
// === Create indexes on all ===
? "4. Creating indexes..."
SELECT 1
INDEX ON NAME TO rdd_ntx_idx
? " NTX index created"
SELECT 2
INDEX ON NAME TO rdd_cdx_idx
? " CDX index created"
SELECT 3
INDEX ON NAME TO rdd_six_idx
? " SIX index created"
SELECT 4
INDEX ON NAME TO rdd_nsx_idx
? " NSX index created"
? ""
// === Navigate each in index order ===
? "5. First/Last by index order:"
SELECT 1
GO TOP
? " NTX first:", AllTrim(FieldGet(2)), "type:", AllTrim(FieldGet(3))
GO BOTTOM
? " NTX last:", AllTrim(FieldGet(2))
SELECT 2
GO TOP
? " CDX first:", AllTrim(FieldGet(2)), "type:", AllTrim(FieldGet(3))
GO BOTTOM
? " CDX last:", AllTrim(FieldGet(2))
SELECT 3
GO TOP
? " SIX first:", AllTrim(FieldGet(2)), "type:", AllTrim(FieldGet(3))
SELECT 4
GO TOP
? " NSX first:", AllTrim(FieldGet(2)), "type:", AllTrim(FieldGet(3))
? ""
// === SEEK in each ===
? "6. SEEK 'Delta' in each:"
SELECT 1
SEEK "Delta"
? " NTX: Found=", Found(), "ID=", FieldGet(1)
SELECT 2
SEEK "Delta"
? " CDX: Found=", Found(), "ID=", FieldGet(1)
SELECT 3
SEEK "Delta"
? " SIX: Found=", Found(), "ID=", FieldGet(1)
SELECT 4
SEEK "Delta"
? " NSX: Found=", Found(), "ID=", FieldGet(1)
? ""
// === SIX functions ===
? "7. HBSIX functions:"
? " sx_IsFPT():", sx_IsFPT()
? " sx_IsDBT():", sx_IsDBT()
? " sx_AutoOpen():", sx_AutoOpen()
? ""
// === Close all ===
? "8. Closing all areas..."
SELECT 4
USE
SELECT 3
USE
SELECT 2
USE
SELECT 1
USE
? " All closed."
? ""
? "============================================"
? " All RDD Drivers Test PASSED!"
? "============================================"
RETURN NIL