Newer
Older
NetAddr-IP / Lite / Util / t / addconst.t
  1. # Before `make install' is performed this script should be runnable with
  2. # `make test'. After `make install' it should work as `perl test.pl'
  3.  
  4. ######################### We start with some black magic to print on failure.
  5. # Change 1..1 below to 1..last_test_to_print .
  6. # (It may become useful if the test is moved to ./t subdirectory.)
  7.  
  8. BEGIN { $| = 1; print "1..20\n"; }
  9. END {print "not ok 1\n" unless $loaded;}
  10.  
  11. use NetAddr::IP::Util qw(
  12. ipv6_aton
  13. ipv6_n2x
  14. inet_any2n
  15. addconst
  16. );
  17.  
  18. $loaded = 1;
  19. print "ok 1\n";
  20. ######################### End of black magic.
  21.  
  22. # Insert your test code below (better if it prints "ok 13"
  23. # (correspondingly "not ok 13") depending on the success of chunk 13
  24. # of the test code):
  25.  
  26. $test = 2;
  27.  
  28. sub ok {
  29. print "ok $test\n";
  30. ++$test;
  31. }
  32.  
  33. my @num = qw # input expected
  34. (
  35. :: 0:0:0:0:0:0:0:0
  36. :: 0:0:0:0:0:0:0:2
  37. ::FFFF 0:0:0:0:0:0:1:3
  38. ::FFFF:FFFF 0:0:0:0:0:1:0:5
  39. ::FFFF:FFFF:FFFF 0:0:0:0:1:0:0:7
  40. ::FFFF:FFFF:FFFF:ffff 0:0:0:1:0:0:0:9
  41. ::FFFF:FFFF:FFFF:ffff:ffff 0:0:1:0:0:0:0:B
  42. ::FFFF:FFFF:FFFF:ffff:ffff:ffff 0:1:0:0:0:0:0:D
  43. 0:FFFF:FFFF:FFFF:ffff:ffff:ffff:ffff 1:0:0:0:0:0:0:F
  44. FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF 0:0:0:0:0:0:0:11
  45. );
  46.  
  47. for (my $i=0; $i <@num; $i+=2) {
  48. my $bnum = ipv6_aton($num[$i]);
  49. my($carry,$rv) = addconst($bnum,$i);
  50. $rv = ipv6_n2x($rv);
  51. print "got: $rv\nexp: $num[$i +1]\nnot "
  52. unless $rv eq $num[$i +1];
  53. &ok;
  54. }
  55.  
  56. @num = qw # input expected
  57. (
  58. FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
  59. :: FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFE
  60. FFFF:: FFFE:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFC
  61. FFFF:FFFF:: FFFF:FFFE:FFFF:FFFF:FFFF:FFFF:FFFF:FFFA
  62. FFFF:FFFF:FFFF:: FFFF:FFFF:FFFE:FFFF:FFFF:FFFF:FFFF:FFF8
  63. ffff:ffff:ffff:ffff:: FFFF:FFFF:FFFF:FFFE:FFFF:FFFF:FFFF:FFF6
  64. ffff:ffff:ffff:ffff:ffff:: FFFF:FFFF:FFFF:FFFF:FFFE:FFFF:FFFF:FFF4
  65. ffff:ffff:ffff:ffff:ffff:ffff:: FFFF:FFFF:FFFF:FFFF:FFFF:FFFE:FFFF:FFF2
  66. FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:0 FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFE:FFF0
  67. );
  68.  
  69. for (my $i=0; $i <@num; $i+=2) {
  70. my $bnum = ipv6_aton($num[$i]);
  71. my($carry,$rv) = addconst($bnum,-$i);
  72. $rv = ipv6_n2x($rv);
  73. print "got: $rv\nexp: $num[$i +1]\nnot "
  74. unless $rv eq $num[$i +1];
  75. &ok;
  76. }
  77.