check_namespace.c 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "opcua.h"
  4. #include "ua_namespace.h"
  5. #include "check.h"
  6. START_TEST(test_Namespace) {
  7. Namespace *ns = UA_NULL;
  8. Namespace_create(&ns, 512);
  9. Namespace_delete(ns);
  10. }
  11. END_TEST
  12. UA_Int32 createNode(UA_Node** p, UA_Int16 nsid, UA_Int32 id) {
  13. UA_Node_new(p);
  14. (*p)->nodeId.encodingByte = UA_NODEIDTYPE_FOURBYTE;
  15. (*p)->nodeId.namespace = nsid;
  16. (*p)->nodeId.identifier.numeric = id;
  17. return UA_SUCCESS;
  18. }
  19. START_TEST(findNodeInNamespaceWithSingleEntry) {
  20. // given
  21. Namespace *ns;
  22. Namespace_create(&ns, 512);
  23. UA_Node* n1; createNode(&n1,0,2253); Namespace_insert(ns,n1);
  24. const UA_Node* nr = UA_NULL;
  25. Namespace_Lock* nl = UA_NULL;
  26. UA_Int32 retval;
  27. // when
  28. retval = Namespace_get(ns,&(n1->nodeId),&nr,&nl);
  29. // then
  30. ck_assert_int_eq(retval, UA_SUCCESS);
  31. ck_assert_ptr_eq(nr,n1);
  32. // finally
  33. Namespace_delete(ns);
  34. }
  35. END_TEST
  36. START_TEST(findNodeInNamespaceWithTwoEntries) {
  37. // given
  38. Namespace *ns;
  39. Namespace_create(&ns, 512);
  40. UA_Node* n1; createNode(&n1,0,2253); Namespace_insert(ns,n1);
  41. UA_Node* n2; createNode(&n2,0,2255); Namespace_insert(ns,n2);
  42. const UA_Node* nr = UA_NULL;
  43. Namespace_Lock* nl = UA_NULL;
  44. UA_Int32 retval;
  45. // when
  46. retval = Namespace_get(ns,&(n2->nodeId),&nr,&nl);
  47. // then
  48. ck_assert_int_eq(retval, UA_SUCCESS);
  49. ck_assert_ptr_eq(nr,n2);
  50. // finally
  51. Namespace_delete(ns);
  52. }
  53. END_TEST
  54. Suite * namespace_suite (void) {
  55. Suite *s = suite_create ("Namespace");
  56. TCase *tc_cd = tcase_create ("Create/Delete");
  57. tcase_add_test (tc_cd, test_Namespace);
  58. suite_add_tcase (s, tc_cd);
  59. TCase* tc_find = tcase_create ("Find");
  60. tcase_add_test (tc_find, findNodeInNamespaceWithSingleEntry);
  61. tcase_add_test (tc_find, findNodeInNamespaceWithTwoEntries);
  62. suite_add_tcase (s, tc_find);
  63. return s;
  64. }
  65. int main (void) {
  66. int number_failed =0;
  67. Suite *s = namespace_suite ();
  68. SRunner *sr = srunner_create (s);
  69. // srunner_set_fork_status(sr,CK_NOFORK);
  70. srunner_run_all (sr, CK_NORMAL);
  71. number_failed += srunner_ntests_failed (sr);
  72. srunner_free (sr);
  73. return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
  74. }