IPv6Address_1.test 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. %description:
  2. Test parsing IPv6 addresses
  3. %includes:
  4. #include <stdio.h>
  5. #include "inet/networklayer/contract/ipv6/IPv6Address.h"
  6. %global:
  7. using namespace inet;
  8. static void parseAddr(const char *s)
  9. {
  10. IPv6Address a(s);
  11. uint32 *d = a.words();
  12. char buff[100];
  13. sprintf(buff, "%x-%x-%x-%x", d[0],d[1],d[2],d[3]);
  14. EV << s << " --> " << a.str() << " (" << buff << ")\n";
  15. }
  16. %activity:
  17. parseAddr("::");
  18. parseAddr("::1");
  19. parseAddr("::ffff");
  20. parseAddr("::a:b:c");
  21. parseAddr("::aaaa:bbbb:cccc");
  22. parseAddr("1::");
  23. parseAddr("ffff::");
  24. parseAddr("aaaa:bbbb:cccc::");
  25. parseAddr("1::2");
  26. parseAddr("aaaa::bbbb");
  27. parseAddr("aaaa:bbbb::1:ffff");
  28. parseAddr("12:34:56::aa:bb:cc");
  29. parseAddr("12:34:56::aa:bb:cc");
  30. parseAddr("ff80:1111:2222:3300:fe44:a555:6666:7778");
  31. parseAddr("::fe44:a555:6666:7778");
  32. parseAddr("ff80:1111:2222:3300::");
  33. EV << ".\n";
  34. %contains: stdout
  35. :: --> <unspec> (0-0-0-0)
  36. ::1 --> ::1 (0-0-0-1)
  37. ::ffff --> ::ffff (0-0-0-ffff)
  38. ::a:b:c --> ::a:b:c (0-0-a-b000c)
  39. ::aaaa:bbbb:cccc --> ::aaaa:bbbb:cccc (0-0-aaaa-bbbbcccc)
  40. 1:: --> 1:: (10000-0-0-0)
  41. ffff:: --> ffff:: (ffff0000-0-0-0)
  42. aaaa:bbbb:cccc:: --> aaaa:bbbb:cccc:: (aaaabbbb-cccc0000-0-0)
  43. 1::2 --> 1::2 (10000-0-0-2)
  44. aaaa::bbbb --> aaaa::bbbb (aaaa0000-0-0-bbbb)
  45. aaaa:bbbb::1:ffff --> aaaa:bbbb::1:ffff (aaaabbbb-0-0-1ffff)
  46. 12:34:56::aa:bb:cc --> 12:34:56::aa:bb:cc (120034-560000-aa-bb00cc)
  47. 12:34:56::aa:bb:cc --> 12:34:56::aa:bb:cc (120034-560000-aa-bb00cc)
  48. ff80:1111:2222:3300:fe44:a555:6666:7778 --> ff80:1111:2222:3300:fe44:a555:6666:7778 (ff801111-22223300-fe44a555-66667778)
  49. ::fe44:a555:6666:7778 --> ::fe44:a555:6666:7778 (0-0-fe44a555-66667778)
  50. ff80:1111:2222:3300:: --> ff80:1111:2222:3300:: (ff801111-22223300-0-0)
  51. .