}
cer->sig = items->list[idx].atom.v.list.head;
idx = KEKSItemsGetByKey(items, cer->sig, "tbs");
- cer->cid = items->list[KEKSItemsGetByKey(items, idx, "cid")].atom.v.hexlet;
+ cer->cid = items->list[KEKSItemsGetByKey(items, idx, "cid")].atom.v.str.ptr;
cer->sid = items->list[KEKSItemsGetByKey(items, idx, "sid")].atom.v.str.ptr;
idx = KEKSItemsGetByKey(items, idx, "exp");
err = KEKSTAI64ToTimespec(
ok = KEKSAtomBoolEncode(&got, buf + *off, cap - (*off), true);
break;
case KEKSItemHexlet:
- ok = KEKSAtomHexletEncode(&got, buf + *off, cap - (*off), item->atom.v.hexlet);
+ ok = KEKSAtomHexletEncode(&got, buf + *off, cap - (*off), item->atom.v.str.ptr);
break;
case KEKSItemMagic:
ok = KEKSAtomMagicEncode(
########################################################################
+cat >schema.tcl <<EOF
+e {{field . {str} =hello}}
+EOF
+$root/schema.tcl schema.tcl | xxd -r -p >schema.keks
+$root/keks.tcl >data.keks.hex <<EOF
+STR hello
+EOF
+xxd -r -p <data.keks.hex >data.keks
+test_expect_success "str =" "$SCHEMA_VALIDATE schema.keks e <data.keks"
+
+$root/keks.tcl >data.keks.hex <<EOF
+STR foobar
+EOF
+xxd -r -p <data.keks.hex >data.keks
+test_expect_success "str !=" "! $SCHEMA_VALIDATE schema.keks e <data.keks"
+
+cat >schema.tcl <<EOF
+e {{field . {str} =[encoding convertto utf-8 привет]}}
+EOF
+$root/schema.tcl schema.tcl | xxd -r -p >schema.keks
+$root/keks.tcl >data.keks.hex <<EOF
+STR привет
+EOF
+xxd -r -p <data.keks.hex >data.keks
+test_expect_success "str cyrillic =" "$SCHEMA_VALIDATE schema.keks e <data.keks"
+
+cat >schema.tcl <<EOF
+e {{field . {hexlet} =[binary decode hex "0e875e3fd38549eb87b4be42d641c367"]}}
+EOF
+$root/schema.tcl schema.tcl | xxd -r -p >schema.keks
+$root/keks.tcl >data.keks.hex <<EOF
+HEXLET 0e875e3f-d385-49eb-87b4-be42d641c367
+EOF
+xxd -r -p <data.keks.hex >data.keks
+test_expect_success "hexlet =" "$SCHEMA_VALIDATE schema.keks e <data.keks"
+
+$root/keks.tcl >data.keks.hex <<EOF
+HEXLET 0e875e3f-d385-49eb-87b4-be42d641c368
+EOF
+xxd -r -p <data.keks.hex >data.keks
+test_expect_success "hexlet !=" "! $SCHEMA_VALIDATE schema.keks e <data.keks"
+
+cat >schema.tcl <<EOF
+e {{field foo {magic} =world}}
+EOF
+$root/schema.tcl schema.tcl | xxd -r -p >schema.keks
+$root/keks.tcl >data.keks.hex <<EOF
+MAP {foo {MAGIC world}}
+EOF
+xxd -r -p <data.keks.hex >data.keks
+test_expect_success "magic =" "$SCHEMA_VALIDATE schema.keks e <data.keks"
+
+$root/keks.tcl >data.keks.hex <<EOF
+MAP {foo {MAGIC мир}}
+EOF
+xxd -r -p <data.keks.hex >data.keks
+test_expect_success "magic !=" "! $SCHEMA_VALIDATE schema.keks e <data.keks"
+
+########################################################################
+
cat >schema.tcl <<EOF
fpr {{field . {bin} len=4}}
e {