28#define SYMBOL_TESTS(X) \
29 X("symbol::make", test_symbol_make), \
30 X("symbol::intern_symbol", test_symbol_intern), \
31 X("symbol::gensym", test_gensym)
#define RELEASE_CONTEXT(x)
#define SHUTDOWN_ENGINE(mm, engine)
#define MAKE_ENGINE(mm, engine)
#define MAKE_CONTEXT(engine, x)
static srn_metadata_t absurd_metadata
We use this for testing.
#define AS_SYMBOL(value_ref)
#define AS_STRING(value_ref)
#define IS_A(value_ref, field)
#define IS_TRUE(value_ref)
srn_value_t * srn_namespace_make(srn_context_t *ctx, srn_metadata_t *metadata, srn_string_t *name)
Creates a new namespace in the give context.
srn_value_t * srn_value_eq(srn_context_t *ctx, const srn_value_t *a, const srn_value_t *b)
Check to values for equality. Return a boolean.
srn_value_t * srn_string_make(srn_context_t *ctx, srn_metadata_t *metadata, const char *src)
Create a string from a null terminated C string.
bool srn_string_eq(const srn_string_t *a, const srn_string_t *b)
static void test_gensym()
static void test_symbol_intern()
static void test_symbol_make()
srn_value_t * srn_symbol_make(srn_context_t *ctx, srn_metadata_t *metadata, srn_namespace_t *ns, srn_string_t *name)
Create a new symbol. IT DOES NOT INTERNALIZE THE SYMBOL.
srn_value_t * srn_symbol_intern(srn_context_t *ctx, srn_metadata_t *metadata, srn_namespace_t *ns, srn_string_t *symbol_name)
srn_value_t * srn_symbol_gen(srn_context_t *ctx, srn_metadata_t *metadata, srn_namespace_t *ns, srn_string_t *optional_name)