#!/usr/bin/perl -w use strict; my $code_limit = 2053; my $size_limit = 4096; die "$0 \n" unless $#ARGV == 1; my $iocccsize = $ARGV[0]; my $source = $ARGV[1]; # Get byte size my $file_size = -s $source; if( $file_size <= 0 ) { die "$source: unexpected size\n"; } # Get code size my @output = `$iocccsize -ik < $source`; if( $? != 0 ) { die "$iocccsize failed: $?\n"; } unless( scalar @output ) { die "$iocccsize produced no output\n"; } unless( $output[0] =~ /^(\d+)/ ) { die "$iocccsize produced unexpected output\n"; } my $code_size = $1; # Check sizes print "size = $code_size/$file_size, margin = ", $code_limit - $code_size, "/", $size_limit - $file_size, "\n"; if( $file_size > $size_limit ) { die "$source exceeded byte size: $file_size > $size_limit\n"; } if( $code_size > $code_limit ) { die "$source exceeded code size: $code_size > $code_limit\n"; } exit 0;