fuzz.pl


#!/usr/bin/env perl

# Marko Vihoma
# TOT Lisätehtävä 3.

use strict;
use warnings;
use Carp;

# Palauttaa satunnaisen mittaisen laajennettu ASCII merkkijonon, pituus väliltä
# 1-1000000000 merkkiä.
sub fuzzer {
  my $chars;
  for(my $i = 0; $i <= rand(1000000000); $i++) {
    $chars .= chr(rand(256));
  }
  
  return $chars;
}

# Ottaa kaksi parametria ja tulostaa ne yhtenä merkkijonona tai palauttaa
# virhearvon. Varoitus: saattaa sekoittaa terminaaliemulaattorin, jolloin reset!
sub test {
  my $chars1 = shift;
  my $chars2 = shift;
  if(length($chars1) <= 0) {
    print "First parameter too small!\n";
    exit 0;
  }
  if(length($chars2) <= 0) {
    print "Second parameter too small!\n";
    exit 0;
  }
  
  print "$chars1 $chars2\n" or confess("print: $!");
  return 1;
}

test(fuzzer(), fuzzer());