mirror of
https://github.com/NixOS/nix
synced 2025-07-07 18:31:49 +02:00
C API: add more tests
This commit is contained in:
parent
2e1dbbe307
commit
1093ab64a2
6 changed files with 86 additions and 26 deletions
|
@ -31,7 +31,6 @@ private:
|
|||
|
||||
static void type_of_function(void * self, nix_string_return * res)
|
||||
{
|
||||
std::cout << self << std::endl;
|
||||
MyExternalValueDesc * obj = static_cast<MyExternalValueDesc *>(self);
|
||||
|
||||
std::string type_string = "nix-external<MyExternalValueDesc( ";
|
||||
|
|
|
@ -18,6 +18,56 @@ TEST_F(nix_api_expr_test, nix_value_set_get_int)
|
|||
nix_init_int(nullptr, value, myInt);
|
||||
|
||||
ASSERT_EQ(myInt, nix_get_int(nullptr, value));
|
||||
ASSERT_STREQ("an integer", nix_get_typename(nullptr, value));
|
||||
ASSERT_EQ(NIX_TYPE_INT, nix_get_type(nullptr, value));
|
||||
}
|
||||
|
||||
TEST_F(nix_api_expr_test, nix_value_set_get_float)
|
||||
{
|
||||
float myDouble = 1.0;
|
||||
nix_init_float(nullptr, value, myDouble);
|
||||
|
||||
ASSERT_EQ(myDouble, nix_get_float(nullptr, value));
|
||||
ASSERT_STREQ("a float", nix_get_typename(nullptr, value));
|
||||
ASSERT_EQ(NIX_TYPE_FLOAT, nix_get_type(nullptr, value));
|
||||
}
|
||||
|
||||
TEST_F(nix_api_expr_test, nix_value_set_get_bool)
|
||||
{
|
||||
bool myBool = true;
|
||||
nix_init_bool(nullptr, value, myBool);
|
||||
|
||||
ASSERT_EQ(myBool, nix_get_bool(nullptr, value));
|
||||
ASSERT_STREQ("a Boolean", nix_get_typename(nullptr, value));
|
||||
ASSERT_EQ(NIX_TYPE_BOOL, nix_get_type(nullptr, value));
|
||||
}
|
||||
|
||||
TEST_F(nix_api_expr_test, nix_value_set_get_string)
|
||||
{
|
||||
const char * myString = "some string";
|
||||
nix_init_string(nullptr, value, myString);
|
||||
|
||||
ASSERT_STREQ(myString, nix_get_string(nullptr, value));
|
||||
ASSERT_STREQ("a string", nix_get_typename(nullptr, value));
|
||||
ASSERT_EQ(NIX_TYPE_STRING, nix_get_type(nullptr, value));
|
||||
}
|
||||
|
||||
TEST_F(nix_api_expr_test, nix_value_set_get_null)
|
||||
{
|
||||
nix_init_null(nullptr, value);
|
||||
|
||||
ASSERT_STREQ("null", nix_get_typename(nullptr, value));
|
||||
ASSERT_EQ(NIX_TYPE_NULL, nix_get_type(nullptr, value));
|
||||
}
|
||||
|
||||
TEST_F(nix_api_expr_test, nix_value_set_get_path)
|
||||
{
|
||||
const char * p = "/nix/store/40s0qmrfb45vlh6610rk29ym318dswdr-myname";
|
||||
nix_init_path_string(nullptr, state, value, p);
|
||||
|
||||
ASSERT_STREQ(p, nix_get_path_string(nullptr, value));
|
||||
ASSERT_STREQ("a path", nix_get_typename(nullptr, value));
|
||||
ASSERT_EQ(NIX_TYPE_PATH, nix_get_type(nullptr, value));
|
||||
}
|
||||
|
||||
TEST_F(nix_api_expr_test, nix_build_and_init_list)
|
||||
|
@ -34,6 +84,9 @@ TEST_F(nix_api_expr_test, nix_build_and_init_list)
|
|||
ASSERT_EQ(42, nix_get_int(nullptr, nix_get_list_byidx(nullptr, value, state, 0)));
|
||||
ASSERT_EQ(1, nix_get_list_size(nullptr, value));
|
||||
|
||||
ASSERT_STREQ("a list", nix_get_typename(nullptr, value));
|
||||
ASSERT_EQ(NIX_TYPE_LIST, nix_get_type(nullptr, value));
|
||||
|
||||
// Clean up
|
||||
nix_gc_decref(nullptr, intValue);
|
||||
}
|
||||
|
@ -80,6 +133,9 @@ TEST_F(nix_api_expr_test, nix_build_and_init_attr)
|
|||
|
||||
ASSERT_STREQ("b", nix_get_attr_name_byidx(nullptr, value, state, 1));
|
||||
|
||||
ASSERT_STREQ("a set", nix_get_typename(nullptr, value));
|
||||
ASSERT_EQ(NIX_TYPE_ATTRS, nix_get_type(nullptr, value));
|
||||
|
||||
// Clean up
|
||||
nix_gc_decref(nullptr, intValue);
|
||||
nix_gc_decref(nullptr, stringValue);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue