testuuid.c 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /* Copyright 2000-2005 The Apache Software Foundation or its licensors, as
  2. * applicable.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #include "testutil.h"
  17. #include "apr_general.h"
  18. #include "apr_uuid.h"
  19. static void test_uuid_parse(abts_case *tc, void *data)
  20. {
  21. apr_uuid_t uuid;
  22. apr_uuid_t uuid2;
  23. char buf[APR_UUID_FORMATTED_LENGTH + 1];
  24. apr_uuid_get(&uuid);
  25. apr_uuid_format(buf, &uuid);
  26. apr_uuid_parse(&uuid2, buf);
  27. ABTS_ASSERT(tc, "parse produced a different UUID",
  28. memcmp(&uuid, &uuid2, sizeof(uuid)) == 0);
  29. }
  30. static void test_gen2(abts_case *tc, void *data)
  31. {
  32. apr_uuid_t uuid;
  33. apr_uuid_t uuid2;
  34. /* generate two of them quickly */
  35. apr_uuid_get(&uuid);
  36. apr_uuid_get(&uuid2);
  37. ABTS_ASSERT(tc, "generated the same UUID twice",
  38. memcmp(&uuid, &uuid2, sizeof(uuid)) != 0);
  39. }
  40. abts_suite *testuuid(abts_suite *suite)
  41. {
  42. suite = ADD_SUITE(suite);
  43. abts_run_test(suite, test_uuid_parse, NULL);
  44. abts_run_test(suite, test_gen2, NULL);
  45. return suite;
  46. }