t_cdb.ml 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. let o i = i |> Optint.of_int
  2. let oi i = i |> Optint.of_unsigned_int32
  3. let oo i = i |> Optint.of_int64
  4. let b = Bytes.of_string
  5. let test_ds_mini () =
  6. let cdb = "mini.cdb" |> Mcdb__.Ds_cdb.open_cdb_in in
  7. assert (b "Ä" = ("a" |> b |> Mcdb__.Ds_cdb.find_first cdb |> Option.get));
  8. assert (b "B" = ("b" |> b |> Mcdb__.Ds_cdb.find_first cdb |> Option.get));
  9. assert (b "ß" = ("s" |> b |> Mcdb__.Ds_cdb.find_first cdb |> Option.get));
  10. Mcdb__.Ds_cdb.close_cdb_in cdb
  11. (*
  12. let test_pipe_big () =
  13. let fd0 = Unix.openfile "mini.cdb" [ Unix.O_RDONLY ] 0
  14. and fd1 =
  15. Unix.openfile "dst.cdb"
  16. [ Unix.O_WRONLY; Unix.O_CREAT; Unix.O_TRUNC; Unix.O_EXCL ]
  17. 0
  18. in
  19. let ctx = Cdb.start fd1 in
  20. let fkt ctx pair =
  21. let _ = pair |> Cdb.add fd1 ctx in
  22. true
  23. in
  24. let _ = Cdb.dump fd0 fkt in
  25. let _ = Cdb.finish fd1 in
  26. assert true;
  27. Unix.close fd1;
  28. Unix.close fd0
  29. *)
  30. let test_ds_hash () =
  31. assert (0x2b5c4l = ("a" |> b |> Mcdb__.Ds_cdb.hash));
  32. let k0 =
  33. "http://www.traunsteiner-tagblatt.de/region+lokal/landkreis-traunstein/traunstein/pressemitteilungen-der-stadt-traunstein_artikel,-Traunstein-20-%E2%80%93-Neue-Medien-im-Mittelpunkt-_arid,198374.html"
  34. in
  35. assert (0xc7410a37l = (k0 |> b |> Mcdb__.Ds_cdb.hash));
  36. Assrt.equals_optint __LOC__ (oo 0xc7410a37L) (oi 0xc7410a37l);
  37. Assrt.equals_optint __LOC__ (oo 0xc7410a37L) (k0 |> b |> Mcdb__.Ds_cdb.hash |> Optint.of_unsigned_int32)
  38. let test_hash () =
  39. (* Printf.printf "0x%x\n" ("a" |> b |> Cdb.hash); *)
  40. Assrt.equals_optint __LOC__ (o 0x2b5c4) ("a" |> b |> Mcdb.hash32_byt);
  41. let k0 =
  42. "http://www.traunsteiner-tagblatt.de/region+lokal/landkreis-traunstein/traunstein/pressemitteilungen-der-stadt-traunstein_artikel,-Traunstein-20-%E2%80%93-Neue-Medien-im-Mittelpunkt-_arid,198374.html"
  43. in
  44. (* Printf.printf "%x\n" (k0 |> b |> Cdb.hash); *)
  45. Assrt.equals_optint __LOC__ (oo 0xc7410a37L) (k0 |> b |> Mcdb.hash32_byt)
  46. let _test_ds_big () =
  47. let k0 =
  48. "http://www.traunsteiner-tagblatt.de/region+lokal/landkreis-traunstein/traunstein/pressemitteilungen-der-stadt-traunstein_artikel,-Traunstein-20-%E2%80%93-Neue-Medien-im-Mittelpunkt-_arid,198374.html"
  49. in
  50. let cdb = "big.cdb" |> Mcdb__.Ds_cdb.open_cdb_in in
  51. (* Printf.printf "%d\n" (k0 |> b |> Mcdb__.Ds_cdb.find cdb |> Bytes.length); *)
  52. assert (1000 = (k0 |> b |> Mcdb__.Ds_cdb.find_first cdb |> Option.get |> Bytes.length));
  53. Mcdb__.Ds_cdb.close_cdb_in cdb
  54. let () =
  55. Unix.chdir "../../../test/";
  56. test_ds_mini ();
  57. test_ds_hash ();
  58. test_hash ();
  59. (* test_ds_big (); *)
  60. assert true