# [PATCH] t/t9700/test.pl: don't access private object members, use public access methods

4 messages from 2010-06-28 to 2010-06-29. Participants: Brandon Casey, Ævar Arnfjörð Bjarmason, Junio C Hamano.
Thread: https://gitlist.dev/t/24224

## Brandon Casey, 2010-06-28 22:51

Subject: [PATCH] t/t9700/test.pl: don't access private object members, use public access methods
Message-ID: <OYRSzEHOHSti8exa5KJzWIUEyJ8xb2sfcvm4pUcvYhBXldZMw8JzP6a6cRcRRIZjiOtW9kzmnVA@cipher.nrlssc.navy.mil>
URL: https://gitlist.dev/e/OYRSzEHOHSti8exa5KJzWIUEyJ8xb2sfcvm4pUcvYhBXldZMw8JzP6a6cRcRRIZjiOtW9kzmnVA%40cipher.nrlssc.navy.mil

```
From: Brandon Casey <drafnel@gmail.com>

This test is accessing private object members of the Test::More and
Test::Builder objects.  Older versions of Test::More did not implement
these variables using a hash.

My system complains as follows:

   Can't coerce array into hash at <snip>/t/t9700/test.pl line 13.
   BEGIN failed--compilation aborted at <snip>/t/t9700/test.pl line 15.

There are public access methods available for retrieving and setting these
variables, so let's use them instead.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
---
 t/t9700/test.pl |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/t/t9700/test.pl b/t/t9700/test.pl
index f2820d2..671f38d 100755
--- a/t/t9700/test.pl
+++ b/t/t9700/test.pl
@@ -10,8 +10,8 @@ use Test::More qw(no_plan);
 BEGIN {
 	# t9700-perl-git.sh kicks off our testing, so we have to go from
 	# there.
-	Test::More->builder->{Curr_Test} = 1;
-	Test::More->builder->{No_Ending} = 1;
+	Test::More->builder->current_test(1);
+	Test::More->builder->no_ending(1);
 }
 
 use Cwd;
@@ -113,7 +113,7 @@ like($last_commit, qr/^[0-9a-fA-F]{40}$/, 'rev-parse returned hash');
 my $dir_commit = $r2->command_oneline('log', '-n1', '--pretty=format:%H', '.');
 isnt($last_commit, $dir_commit, 'log . does not show last commit');
 
-printf "1..%d\n", Test::More->builder->{Curr_Test};
+printf "1..%d\n", Test::More->builder->current_test;
 
 my $is_passing = eval { Test::More->is_passing };
 exit($is_passing ? 0 : 1) unless $@ =~ /Can't locate object method/;
-- 
1.6.6.2

```

## Ævar Arnfjörð Bjarmason, 2010-06-29 02:19

Subject: Re: [PATCH] t/t9700/test.pl: don't access private object members, use public access methods
Message-ID: <AANLkTik3L7VcjezVK_8PCKsSpNFaTfYNvsOAgckhv-6K@mail.gmail.com>
URL: https://gitlist.dev/e/AANLkTik3L7VcjezVK_8PCKsSpNFaTfYNvsOAgckhv-6K%40mail.gmail.com
In-Reply-To: <OYRSzEHOHSti8exa5KJzWIUEyJ8xb2sfcvm4pUcvYhBXldZMw8JzP6a6cRcRRIZjiOtW9kzmnVA@cipher.nrlssc.navy.mil>

```
On Mon, Jun 28, 2010 at 22:51, Brandon Casey <casey@nrlssc.navy.mil> wrote:
> From: Brandon Casey <drafnel@gmail.com>
>
> This test is accessing private object members of the Test::More and
> Test::Builder objects.  Older versions of Test::More did not implement
> these variables using a hash.
>
> My system complains as follows:
>
>   Can't coerce array into hash at <snip>/t/t9700/test.pl line 13.
>   BEGIN failed--compilation aborted at <snip>/t/t9700/test.pl line 15.

Just for the record, what version of Test::More is that:

    perl -MTest::More -le 'print $Test::More::VERSION'

> There are public access methods available for retrieving and setting these
> variables, so let's use them instead.
>
> Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>

This looks good, sorry for the API mistake on my part.

Acked-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>

```

## Brandon Casey, 2010-06-29 13:21

Subject: Re: [PATCH] t/t9700/test.pl: don't access private object members, use public access methods
Message-ID: <9GBPdCANIkJqMOijhTovNxubG4uDjhkPBiOv42hdrzS-K6oLSFiVLg@cipher.nrlssc.navy.mil>
URL: https://gitlist.dev/e/9GBPdCANIkJqMOijhTovNxubG4uDjhkPBiOv42hdrzS-K6oLSFiVLg%40cipher.nrlssc.navy.mil
In-Reply-To: <AANLkTik3L7VcjezVK_8PCKsSpNFaTfYNvsOAgckhv-6K@mail.gmail.com>

```
On 06/28/2010 09:19 PM, Ævar Arnfjörð Bjarmason wrote:
> On Mon, Jun 28, 2010 at 22:51, Brandon Casey <casey@nrlssc.navy.mil> wrote:
>> From: Brandon Casey <drafnel@gmail.com>
>>
>> This test is accessing private object members of the Test::More and
>> Test::Builder objects.  Older versions of Test::More did not implement
>> these variables using a hash.
>>
>> My system complains as follows:
>>
>>   Can't coerce array into hash at <snip>/t/t9700/test.pl line 13.
>>   BEGIN failed--compilation aborted at <snip>/t/t9700/test.pl line 15.
> 
> Just for the record, what version of Test::More is that:
> 
>     perl -MTest::More -le 'print $Test::More::VERSION'

0.47 which is available on RHEL 4.X

>> There are public access methods available for retrieving and setting these
>> variables, so let's use them instead.
>>
>> Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
> 
> This looks good, sorry for the API mistake on my part.

No problem.

-brandon

```

## Junio C Hamano, 2010-06-29 16:33

Subject: Re: [PATCH] t/t9700/test.pl: don't access private object members, use public access methods
Message-ID: <7v8w5xbxyk.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7v8w5xbxyk.fsf%40alter.siamese.dyndns.org
In-Reply-To: <9GBPdCANIkJqMOijhTovNxubG4uDjhkPBiOv42hdrzS-K6oLSFiVLg@cipher.nrlssc.navy.mil>

```
Brandon Casey <casey@nrlssc.navy.mil> writes:

>>> There are public access methods available for retrieving and setting these
>>> variables, so let's use them instead.
>>>
>>> Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
>> 
>> This looks good, sorry for the API mistake on my part.
>
> No problem.

Thanks, both of you.

```
