Browse Source

idl - add api test (typesys tests for now)

main
heck 2 years ago
parent
commit
0acf8bbd31
  1. 29
      idl/test_api/Makefile
  2. 136
      idl/test_api/output/typesys.out.target
  3. 21
      idl/test_api/test_api.yml2
  4. 53
      idl/test_api/test_api.ysl2

29
idl/test_api/Makefile

@ -0,0 +1,29 @@
YML_PATH+=:../
COMPILER=test_api.ysl2
BUILD_DIR=output
SRC=$(wildcard *.yml2)
SRC_XML=$(addsuffix .xml, $(basename $(SRC)))
.PHONY: all xml compile clean
all: xml compile
compile: $(BUILD_DIR)/*
xml: $(SRC_XML)
$(BUILD_DIR)/*: $(BUILD_DIR) $(SRC) $(COMPILER)
YML_PATH=$(YML_PATH) yml2proc -y $(COMPILER) $(SRC)
diff $(BUILD_DIR)/typesys.out $(BUILD_DIR)/typesys.out.target
$(BUILD_DIR):
mkdir $(BUILD_DIR)
%.xml: %.yml2
YML_PATH=$(YML_PATH) yml2proc -P $< -o $@
clean:
rm -rf \
./$(BUILD_DIR)/*.out \
$(SRC_XML)

136
idl/test_api/output/typesys.out.target

@ -0,0 +1,136 @@
// basetypes
idltype: string
idl_type_is_defined: true
idl_type_get_typekind_of_type: basetype
idl_type_get_resolved_typekind: basetype
idl_type_get_resolved_type: string
idl_type_is_of_typekind_basetype: true
idl_type_is_of_typekind_deftype: false
idl_type_is_of_typekind_enum: false
idl_type_is_of_typekind_struct: false
idltype: binary
idl_type_is_defined: true
idl_type_get_typekind_of_type: basetype
idl_type_get_resolved_typekind: basetype
idl_type_get_resolved_type: binary
idl_type_is_of_typekind_basetype: true
idl_type_is_of_typekind_deftype: false
idl_type_is_of_typekind_enum: false
idl_type_is_of_typekind_struct: false
idltype: int
idl_type_is_defined: true
idl_type_get_typekind_of_type: basetype
idl_type_get_resolved_typekind: basetype
idl_type_get_resolved_type: int
idl_type_is_of_typekind_basetype: true
idl_type_is_of_typekind_deftype: false
idl_type_is_of_typekind_enum: false
idl_type_is_of_typekind_struct: false
idltype: uint
idl_type_is_defined: true
idl_type_get_typekind_of_type: basetype
idl_type_get_resolved_typekind: basetype
idl_type_get_resolved_type: uint
idl_type_is_of_typekind_basetype: true
idl_type_is_of_typekind_deftype: false
idl_type_is_of_typekind_enum: false
idl_type_is_of_typekind_struct: false
idltype: size
idl_type_is_defined: true
idl_type_get_typekind_of_type: basetype
idl_type_get_resolved_typekind: basetype
idl_type_get_resolved_type: size
idl_type_is_of_typekind_basetype: true
idl_type_is_of_typekind_deftype: false
idl_type_is_of_typekind_enum: false
idl_type_is_of_typekind_struct: false
idltype: bool
idl_type_is_defined: true
idl_type_get_typekind_of_type: basetype
idl_type_get_resolved_typekind: basetype
idl_type_get_resolved_type: bool
idl_type_is_of_typekind_basetype: true
idl_type_is_of_typekind_deftype: false
idl_type_is_of_typekind_enum: false
idl_type_is_of_typekind_struct: false
idltype: opaque
idl_type_is_defined: true
idl_type_get_typekind_of_type: basetype
idl_type_get_resolved_typekind: basetype
idl_type_get_resolved_type: opaque
idl_type_is_of_typekind_basetype: true
idl_type_is_of_typekind_deftype: false
idl_type_is_of_typekind_enum: false
idl_type_is_of_typekind_struct: false
// deftype basetype
idltype: deftype1
idl_type_is_defined: true
idl_type_get_typekind_of_type: deftype
idl_type_get_resolved_typekind: basetype
idl_type_get_resolved_type: size
idl_type_is_of_typekind_basetype: false
idl_type_is_of_typekind_deftype: true
idl_type_is_of_typekind_enum: false
idl_type_is_of_typekind_struct: false
idltype: deftype2
idl_type_is_defined: true
idl_type_get_typekind_of_type: deftype
idl_type_get_resolved_typekind: basetype
idl_type_get_resolved_type: string
idl_type_is_of_typekind_basetype: false
idl_type_is_of_typekind_deftype: true
idl_type_is_of_typekind_enum: false
idl_type_is_of_typekind_struct: false
// deftype generic
idltype: stringlist
idl_type_is_defined: true
idl_type_get_typekind_of_type: deftype
idl_type_get_resolved_typekind: false
idl_type_get_resolved_type: list
idl_type_is_of_typekind_basetype: false
idl_type_is_of_typekind_deftype: true
idl_type_is_of_typekind_enum: false
idl_type_is_of_typekind_struct: false
// enum
idltype: enum1
idl_type_is_defined: true
idl_type_get_typekind_of_type: enum
idl_type_get_resolved_typekind: enum
idl_type_get_resolved_type: enum1
idl_type_is_of_typekind_basetype: false
idl_type_is_of_typekind_deftype: false
idl_type_is_of_typekind_enum: true
idl_type_is_of_typekind_struct: false
// struct
idltype: struct1
idl_type_is_defined: true
idl_type_get_typekind_of_type: struct
idl_type_get_resolved_typekind: struct
idl_type_get_resolved_type: struct1
idl_type_is_of_typekind_basetype: false
idl_type_is_of_typekind_deftype: false
idl_type_is_of_typekind_enum: false
idl_type_is_of_typekind_struct: true
// undefined
idltype: undefined
idl_type_is_defined: false
idl_type_get_typekind_of_type: false
idl_type_get_resolved_typekind: false
idl_type_get_resolved_type: undefined
idl_type_is_of_typekind_basetype: false
idl_type_is_of_typekind_deftype: false
idl_type_is_of_typekind_enum: false
idl_type_is_of_typekind_struct: false

21
idl/test_api/test_api.yml2

@ -0,0 +1,21 @@
pEpACIDLang {
include pEpACIDLang.yml2
package idl_test {
api typesys {
deftype deftype1 as size;
deftype deftype2 as string;
deftype stringlist as list<string>;
enum enum1 {
item item1;
item item2;
};
struct struct1 {
field int int1;
field size size1;
};
};
};
}

53
idl/test_api/test_api.ysl2

@ -0,0 +1,53 @@
include yslt.yml2
tstylesheet {
include standardlib.ysl2
include idl_api.ysl2
template "api" document "output/typesys.out", "text" {
||
// basetypes
«func:typeinfo('string')»
«func:typeinfo('binary')»
«func:typeinfo('int')»
«func:typeinfo('uint')»
«func:typeinfo('size')»
«func:typeinfo('bool')»
«func:typeinfo('opaque')»
// deftype basetype
«func:typeinfo('deftype1')»
«func:typeinfo('deftype2')»
// deftype generic
«func:typeinfo('stringlist')»
// enum
«func:typeinfo('enum1')»
// struct
«func:typeinfo('struct1')»
// undefined
«func:typeinfo('undefined')»
||
}
def "func:typeinfo" {
param "idltype";
result call "typeinfo" with "idltype", "$idltype";
};
function "typeinfo" {
param "idltype";
||
idltype: «$idltype»
idl_type_is_defined: «func:idl_type_is_defined($idltype)»
idl_type_get_typekind_of_type: «func:idl_type_get_typekind_of_type($idltype)»
idl_type_get_resolved_typekind: «func:idl_type_get_resolved_typekind($idltype)»
idl_type_get_resolved_type: «func:idl_type_get_resolved_type($idltype)»
idl_type_is_of_typekind_basetype: «func:idl_type_is_of_typekind_basetype($idltype)»
idl_type_is_of_typekind_deftype: «func:idl_type_is_of_typekind_deftype($idltype)»
idl_type_is_of_typekind_enum: «func:idl_type_is_of_typekind_enum($idltype)»
idl_type_is_of_typekind_struct: «func:idl_type_is_of_typekind_struct($idltype)»
||
}
}
Loading…
Cancel
Save