Guest User

Untitled

a guest
Jun 21st, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3. use RPM::Header::PurePerl;
  4. use XML::Simple qw(:strict);
  5. use Data::Dumper;
  6. use Test::More tests => 1;
  7. use Test::Benchmark;
  8. use IO::Uncompress::Gunzip qw(gunzip $GunzipError) ;
  9. use File::Spec;
  10.  
  11. use warnings;
  12. use strict;
  13.  
  14. opendir(DIR, ".");
  15. my @files = readdir(DIR);
  16. closedir(DIR);
  17. @files = File::Spec->no_upwards( @files );
  18.  
  19. my $input = "repodata/primary.xml.gz";
  20. my $output = "repodata/primary.xml";
  21. gunzip $input => $output
  22. or die "gunzip failed: $GunzipError\n";
  23.  
  24. my $ref = XMLin($output, ForceArray => 1, KeyAttr => [ ]);
  25.  
  26. #test_xml($ref);
  27. is_faster(2,-5, sub { test_xml($ref) }, sub { test_rpm(@files) },"XML is faster than RPM");
  28.  
  29.  
  30. sub test_xml {
  31. my ($my_ref) = @_;
  32. print "Test XML\n";
  33.  
  34. #print Dumper($my_ref);
  35. for (my $count = 0; $count <= 216; $count++) {
  36. print "Unknown 1147, 8\n";
  37. print $my_ref->{package}->[$count]->{name}->[0]."\n";
  38. print $my_ref->{package}->[$count]->{version}->[0]->{ver}."\n";
  39. print $my_ref->{package}->[$count]->{version}->[0]->{rel}."\n";
  40. print $my_ref->{package}->[$count]->{description}->[0]."\n\n";
  41. }
  42. }
  43.  
  44. sub test_rpm {
  45. my @my_files = @_;
  46. my ($file);
  47. print "Test RPM\n";
  48.  
  49. foreach $file (@my_files) {
  50. #print "${file}\n";
  51.  
  52. tie my %rpm, "RPM::Header::PurePerl", $file
  53. or die "Problem, could not open rpm";
  54. print "$rpm{'NAME'}\n";
  55. print "$rpm{'VERSION'}\n";
  56. print "$rpm{'RELEASE'}\n";
  57. print "$rpm{'DESCRIPTION'}->[0]\n\n";
  58. }
  59. }
Add Comment
Please, Sign In to add comment