def test_define(self): name = 'test1' primary_type = calligra.PrimaryType(self.namespace, name) self.assertEqual(primary_type.define(), name + ';\n') name = 'test2' primary_type = calligra.PrimaryType(self.namespace, name, imported=True) with self.assertRaises(RuntimeError): primary_type.define()
def test_register(self): namespace = calligra.namespace() name = 'test' primary_type1 = calligra.PrimaryType(namespace, name, register=False) self.assertEqual(namespace.register(name, primary_type1), primary_type1) self.assertEqual(namespace.get(name), primary_type1) primary_type2 = calligra.PrimaryType(namespace, name, register=False) with self.assertRaises(RuntimeError): namespace.register(name, primary_type2)
def test_register(self): name = 'test' primary_type = calligra.PrimaryType(self.namespace, name, register=False) self.assertEqual(primary_type.register(self.namespace), primary_type) self.assertEqual(self.namespace.get(name), primary_type)
def test_name(self): name = 'test' primary_type = calligra.PrimaryType(self.namespace, name) self.assertEqual(primary_type.name(), name)
@calligra.add_method(calligra.stdlib.in6_addr, 'from_json') class in6_addr_from_json(struct_from_json): def body(self, prefix = ''): code = '' code += prefix + 'const char *str;\n' code += prefix + 'if(!json_is_string(json)) {\n' code += prefix + '\treturn false;\n' code += prefix + '}\n' code += prefix + 'str = json_string_value(json);\n' code += prefix + 'if(inet_pton(AF_INET6, str, {}) == 1) {{\n'.format( self.properties()[0].name() ) code += prefix + '\treturn true;\n' code += prefix + '}\n' code += prefix + 'return false;\n' return code calligra.PrimaryType( calligra.stdlib.namespace, 'json_t', imported = 'jansson.h' ) calligra.IntegerType( calligra.stdlib.namespace, 'json_int_t', imported = True, min_value = 'LLONG_MIN', max_value = 'LLONG_MAX', )
size = self._char.strlen.call(str_arg) c_arg = calligra.declaration(namespace, self._namespace.get('uint8_t'), '0') n_arg = calligra.declaration(namespace, self._namespace.get('size_t'), size) return super().call(str_arg, (c_arg, ), (n_arg, )) ######################################## types = [] namespace = calligra.namespace() types.append( calligra.PrimaryType(namespace, 'void', imported=True).type().name()) types.append( calligra.IntegerType(namespace, 'size_t', min_value='0', imported=True).type().name()) types.append(boolean(namespace, '_Bool', imported=True).type().name()) types.append(boolean(namespace, 'bool', imported='stdbool.h').type().name()) types.append( calligra.IntegerType(namespace, 'uint8_t', min_value='0', max_value='UINT8_MAX', imported='stdint.h').type().name()) types.append( calligra.IntegerType(namespace, 'int8_t', min_value='INT8_MIN',