From 90cb3049e67c573dd479ba9ee5e4f5fe189916c2 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Fri, 21 Jun 2013 02:15:12 -0400 Subject: fix refreshing a module first loaded after the first refresh call --- t/data/new-modules/after/Foo.pm | 7 +++++++ t/data/new-modules/before/Foo.pm | 7 +++++++ t/data/new-modules/middle/Foo.pm | 7 +++++++ t/new-modules.t | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 t/data/new-modules/after/Foo.pm create mode 100644 t/data/new-modules/before/Foo.pm create mode 100644 t/data/new-modules/middle/Foo.pm create mode 100644 t/new-modules.t (limited to 't') diff --git a/t/data/new-modules/after/Foo.pm b/t/data/new-modules/after/Foo.pm new file mode 100644 index 0000000..54b998e --- /dev/null +++ b/t/data/new-modules/after/Foo.pm @@ -0,0 +1,7 @@ +package Foo; +use strict; +use warnings; + +sub bar { 3 } + +1; diff --git a/t/data/new-modules/before/Foo.pm b/t/data/new-modules/before/Foo.pm new file mode 100644 index 0000000..71386af --- /dev/null +++ b/t/data/new-modules/before/Foo.pm @@ -0,0 +1,7 @@ +package Foo; +use strict; +use warnings; + +sub bar { 1 } + +1; diff --git a/t/data/new-modules/middle/Foo.pm b/t/data/new-modules/middle/Foo.pm new file mode 100644 index 0000000..2971777 --- /dev/null +++ b/t/data/new-modules/middle/Foo.pm @@ -0,0 +1,7 @@ +package Foo; +use strict; +use warnings; + +sub bar { 2 } + +1; diff --git a/t/new-modules.t b/t/new-modules.t new file mode 100644 index 0000000..aae0aff --- /dev/null +++ b/t/new-modules.t @@ -0,0 +1,34 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; +use lib 't/lib'; +use Test::Class::Refresh; + +use Class::Refresh; + +my $dir = prepare_temp_dir_for('new-modules'); +push @INC, $dir->dirname; + +Class::Refresh->refresh; + +# load Foo after the first call to refresh +require Foo; + +is(Foo->bar, 1); + +sleep 2; +update_temp_dir_for('new-modules', $dir, 'middle'); + +Class::Refresh->refresh; + +is(Foo->bar, 2); + +sleep 2; +update_temp_dir_for('new-modules', $dir, 'after'); + +Class::Refresh->refresh; + +is(Foo->bar, 3); + +done_testing; -- cgit v1.2.3-54-g00ecf