aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--t/find_edid.t44
-rwxr-xr-xt/pod.t1
-rw-r--r--t/test.t371
3 files changed, 44 insertions, 372 deletions
diff --git a/t/find_edid.t b/t/find_edid.t
new file mode 100644
index 0000000..2e42a75
--- /dev/null
+++ b/t/find_edid.t
@@ -0,0 +1,44 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use English qw(-no_match_vars);
+use Test::More;
+use Parse::EDID;
+
+my %tests = (
+ sample1 => [
+ '00ffffffffffff0006af14a10000000001120103901a10780a50c59858528e2725505400000001010101010101010101010101010101ea1a007e502010303020360005a31000001aea1a007e502010303020360005a31000001a000000fe00593734374480423132314557300000000000000000000000000001010a202000a5'
+ ],
+ sample2 => [
+ '00ffffffffffff0006af14a10000000001120103901a10780a50c59858528e2725505400000001010101010101010101010101010101ea1a007e502010303020360005a31000001aea1a007e502010303020360005a31000001a000000fe00593734374480423132314557300000000000000000000000000001010a202000a5',
+ '00ffffffffffff0022f0f62601010101181401036e362378eece50a3544c99260f5054a56b8081408180a900a940b300d10001010101283c80a070b023403020360022602100001a000000fc004850204c5032343735770a2020000000fd0030551e5e15000a202020202020000000ff00434e43303234303343500a20200085'
+ ]
+);
+
+plan tests => scalar keys %tests;
+
+foreach my $test (keys %tests) {
+ my $string = read_file("t/xrandr/$test");
+
+ my @edids = find_edid_in_string($string);
+ is_deeply(
+ \@edids,
+ [ map { binary($_) } @{$tests{$test}} ],
+ "file $test: edids extraction"
+ );
+}
+sub read_file {
+ my ($file) = @_;
+ local $RS;
+ open (my $handle, '<', $file) or die "Can't open $file: $ERRNO";
+ my $content = <$handle>;
+ close $handle;
+ return $content;
+}
+
+sub binary {
+ my ($string) = @_;
+ return pack("C*", map { hex($_) } $string =~ /(..)/g);
+}
diff --git a/t/pod.t b/t/pod.t
index 9a60e73..eec4372 100755
--- a/t/pod.t
+++ b/t/pod.t
@@ -10,5 +10,4 @@ eval { require Test::Pod; };
plan(skip_all => 'Test::Pod required') if $EVAL_ERROR;
Test::Pod->import();
-
all_pod_files_ok();
diff --git a/t/test.t b/t/test.t
deleted file mode 100644
index 46fbc47..0000000
--- a/t/test.t
+++ /dev/null
@@ -1,371 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-use English qw(-no_match_vars);
-use Test::More;
-use YAML;
-
-# each value is an arrayref with 2 elements, indexed by file name:
-# - expected output from find_edid_in_string function
-# - list of tuples foreach edid fragement:
-# - expected output from parse_edid function
-# - expected output from check_parsed_edid function
-my $tests = Load(join('', <DATA>));
-
-# use test
-my $count = 1;
-foreach my $test (keys %$tests) {
- # one find_edid test, plus two tests foreach fragment
- $count += 1 + (2 * scalar @{$tests->{$test}->[1]});
-}
-plan tests => $count;
-
-use_ok('Parse::EDID');
-
-foreach my $test (keys %$tests) {
- my $string = read_file("t/$test");
-
- my @edids = find_edid_in_string($string);
- is_deeply(
- \@edids,
- [ map { binary($_) } @{$tests->{$test}->[0]} ],
- "file $test: edids extraction"
- );
-
- for my $i (0 .. $#edids) {
- my $parsed_edid = parse_edid($edids[$i]);
- is_deeply(
- $parsed_edid,
- $tests->{$test}->[1]->[$i]->[0],
- "file $test, edid $i: parsing"
- );
-
- my $message = check_parsed_edid($parsed_edid);
- is(
- $message,
- $tests->{$test}->[1]->[$i]->[1],
- "file $test, edit $i: checking"
- );
- }
-}
-
-sub read_file {
- my ($file) = @_;
- local $RS;
- open (my $handle, '<', $file) or die "Can't open $file: $ERRNO";
- my $content = <$handle>;
- close $handle;
- return $content;
-}
-
-sub binary {
- my ($string) = @_;
- return pack("C*", map { hex($_) } $string =~ /(..)/g);
-}
-__DATA__
----
-sample1:
- -
- - 00ffffffffffff0006af14a10000000001120103901a10780a50c59858528e2725505400000001010101010101010101010101010101ea1a007e502010303020360005a31000001aea1a007e502010303020360005a31000001a000000fe00593734374480423132314557300000000000000000000000000001010a202000a5
- -
- -
- - EISA_ID: AUOa114
- checksum: 165
- detailed_timings:
- - ModeLine: '"1280x800" 68.9 1280 1328 1360 1406 800 803 809 816 -hsync +vsync'
- ModeLine_comment: '# Monitor preferred modeline (60.1 Hz vsync, 49.0 kHz hsync, ratio 16/10, 124 dpi)'
- digital_composite: 3
- horizontal_active: 1280
- horizontal_blanking: 126
- horizontal_border: 0
- horizontal_dpi: 124.567049808429
- horizontal_image_size: 261
- horizontal_sync_offset: 48
- horizontal_sync_positive: 0
- horizontal_sync_pulse_width: 32
- interlaced: 0
- pixel_clock: 68.9
- preferred: 1
- stereo: 0
- vertical_active: 800
- vertical_blanking: 16
- vertical_border: 0
- vertical_dpi: 124.662576687117
- vertical_image_size: 163
- vertical_sync_offset: 3
- vertical_sync_positive: 1
- vertical_sync_pulse_width: 6
- - ModeLine: '"1280x800" 68.9 1280 1328 1360 1406 800 803 809 816 -hsync +vsync'
- ModeLine_comment: '# Monitor supported modeline (60.1 Hz vsync, 49.0 kHz hsync, ratio 16/10, 124 dpi)'
- digital_composite: 3
- horizontal_active: 1280
- horizontal_blanking: 126
- horizontal_border: 0
- horizontal_dpi: 124.567049808429
- horizontal_image_size: 261
- horizontal_sync_offset: 48
- horizontal_sync_positive: 0
- horizontal_sync_pulse_width: 32
- interlaced: 0
- pixel_clock: 68.9
- stereo: 0
- vertical_active: 800
- vertical_blanking: 16
- vertical_border: 0
- vertical_dpi: 124.662576687117
- vertical_image_size: 163
- vertical_sync_offset: 3
- vertical_sync_positive: 1
- vertical_sync_pulse_width: 6
- diagonal_size: 12.1148583788498
- edid_revision: 3
- edid_version: 1
- established_timings: []
- extension_flag: 0
- feature_support:
- DPMS_active_off: 0
- DPMS_standby: 0
- DPMS_suspend: 0
- GTF_compliance: 0
- has_preferred_timing: 1
- rgb: 0
- sRGB_compliance: 0
- gamma: 120
- manufacturer_name: AUO
- max_size_horizontal: 26.1
- max_size_precision: mm
- max_size_vertical: 16.3
- monitor_details: ''
- monitor_text:
- - "Y747D\x80B121EW0"
- product_code: 41236
- ratio: 1.60122699386503
- ratio_name: 16/10
- ratio_precision: mm
- serial_number: 0
- standard_timings: []
- video_input_definition:
- composite_sync: 0
- digital: 1
- separate_sync: 0
- sync_on_green: 1
- voltage_level: 0
- week: 1
- year: 2008
- - ''
-sample2:
- -
- - 00ffffffffffff0006af14a10000000001120103901a10780a50c59858528e2725505400000001010101010101010101010101010101ea1a007e502010303020360005a31000001aea1a007e502010303020360005a31000001a000000fe00593734374480423132314557300000000000000000000000000001010a202000a5
- - 00ffffffffffff0022f0f62601010101181401036e362378eece50a3544c99260f5054a56b8081408180a900a940b300d10001010101283c80a070b023403020360022602100001a000000fc004850204c5032343735770a2020000000fd0030551e5e15000a202020202020000000ff00434e43303234303343500a20200085
- -
- -
- - EISA_ID: AUOa114
- checksum: 165
- detailed_timings:
- - ModeLine: '"1280x800" 68.9 1280 1328 1360 1406 800 803 809 816 -hsync +vsync'
- ModeLine_comment: '# Monitor preferred modeline (60.1 Hz vsync, 49.0 kHz hsync, ratio 16/10, 124 dpi)'
- digital_composite: 3
- horizontal_active: 1280
- horizontal_blanking: 126
- horizontal_border: 0
- horizontal_dpi: 124.567049808429
- horizontal_image_size: 261
- horizontal_sync_offset: 48
- horizontal_sync_positive: 0
- horizontal_sync_pulse_width: 32
- interlaced: 0
- pixel_clock: 68.9
- preferred: 1
- stereo: 0
- vertical_active: 800
- vertical_blanking: 16
- vertical_border: 0
- vertical_dpi: 124.662576687117
- vertical_image_size: 163
- vertical_sync_offset: 3
- vertical_sync_positive: 1
- vertical_sync_pulse_width: 6
- - ModeLine: '"1280x800" 68.9 1280 1328 1360 1406 800 803 809 816 -hsync +vsync'
- ModeLine_comment: '# Monitor supported modeline (60.1 Hz vsync, 49.0 kHz hsync, ratio 16/10, 124 dpi)'
- digital_composite: 3
- horizontal_active: 1280
- horizontal_blanking: 126
- horizontal_border: 0
- horizontal_dpi: 124.567049808429
- horizontal_image_size: 261
- horizontal_sync_offset: 48
- horizontal_sync_positive: 0
- horizontal_sync_pulse_width: 32
- interlaced: 0
- pixel_clock: 68.9
- stereo: 0
- vertical_active: 800
- vertical_blanking: 16
- vertical_border: 0
- vertical_dpi: 124.662576687117
- vertical_image_size: 163
- vertical_sync_offset: 3
- vertical_sync_positive: 1
- vertical_sync_pulse_width: 6
- diagonal_size: 12.1148583788498
- edid_revision: 3
- edid_version: 1
- established_timings: []
- extension_flag: 0
- feature_support:
- DPMS_active_off: 0
- DPMS_standby: 0
- DPMS_suspend: 0
- GTF_compliance: 0
- has_preferred_timing: 1
- rgb: 0
- sRGB_compliance: 0
- gamma: 120
- manufacturer_name: AUO
- max_size_horizontal: 26.1
- max_size_precision: mm
- max_size_vertical: 16.3
- monitor_details: ''
- monitor_text:
- - "Y747D\x80B121EW0"
- product_code: 41236
- ratio: 1.60122699386503
- ratio_name: 16/10
- ratio_precision: mm
- serial_number: 0
- standard_timings: []
- video_input_definition:
- composite_sync: 0
- digital: 1
- separate_sync: 0
- sync_on_green: 1
- voltage_level: 0
- week: 1
- year: 2008
- - ''
- -
- - EISA_ID: HWP26f6
- HorizSync: 30-94
- VertRefresh: 48-85
- checksum: 133
- detailed_timings:
- - ModeLine: '"1920x1200" 154 1920 1968 2000 2080 1200 1203 1209 1235 -hsync +vsync'
- ModeLine_comment: '# Monitor preferred modeline (60.0 Hz vsync, 74.0 kHz hsync, ratio 16/10, 90 dpi)'
- bad_ratio: 1
- digital_composite: 3
- horizontal_active: 1920
- horizontal_blanking: 160
- horizontal_border: 0
- horizontal_dpi: 90.3111111111111
- horizontal_image_size: 546
- horizontal_sync_offset: 48
- horizontal_sync_positive: 0
- horizontal_sync_pulse_width: 32
- interlaced: 0
- pixel_clock: 154
- preferred: 1
- stereo: 0
- vertical_active: 1200
- vertical_blanking: 35
- vertical_border: 0
- vertical_dpi: 87.0857142857143
- vertical_image_size: 352
- vertical_sync_offset: 3
- vertical_sync_positive: 1
- vertical_sync_pulse_width: 6
- diagonal_size: 25.3348827451908
- edid_revision: 3
- edid_version: 1
- established_timings:
- - X: 640
- Y: 480
- vfreq: 60
- - X: 640
- Y: 480
- vfreq: 75
- - X: 720
- Y: 400
- vfreq: 70
- - X: 800
- Y: 600
- vfreq: 60
- - X: 800
- Y: 600
- vfreq: 75
- - X: 832
- Y: 624
- vfreq: 75
- - X: 1024
- Y: 768
- vfreq: 60
- - X: 1024
- Y: 768
- vfreq: 75
- - X: 1280
- Y: 1024
- vfreq: 75
- extension_flag: 0
- feature_support:
- DPMS_active_off: 1
- DPMS_standby: 1
- DPMS_suspend: 1
- GTF_compliance: 0
- has_preferred_timing: 1
- rgb: 0
- sRGB_compliance: 1
- gamma: 120
- manufacturer_name: HWP
- max_size_horizontal: 54
- max_size_precision: cm
- max_size_vertical: 35
- monitor_details: ''
- monitor_name: HP LP2475w
- monitor_range:
- horizontal_max: 94
- horizontal_min: 30
- pixel_clock_max: 210
- vertical_max: 85
- vertical_min: 48
- product_code: 9974
- ratio: 1.55113636363636
- ratio_name: 16/10
- ratio_precision: mm
- serial_number: 16843009
- serial_number2:
- - CNC02403CP
- standard_timings:
- - X: 1280
- Y: 960
- ratio: 4/3
- vfreq: 60
- - X: 1280
- Y: 1024
- ratio: 5/4
- vfreq: 60
- - X: 1600
- Y: 1000
- ratio: 16/10
- vfreq: 60
- - X: 1600
- Y: 1200
- ratio: 4/3
- vfreq: 60
- - X: 1680
- Y: 1050
- ratio: 16/10
- vfreq: 60
- - X: 1920
- Y: 1200
- ratio: 16/10
- vfreq: 60
- video_input_definition:
- composite_sync: 1
- digital: 0
- separate_sync: 1
- sync_on_green: 0
- voltage_level: 2
- week: 24
- year: 2010
- - ''