diff mbox series

oeqa/selftest/reproducibile: rename of reproducible directories

Message ID 20240718100440.1555319-1-sundeep.kokkonda@windriver.com
State New
Headers show
Series oeqa/selftest/reproducibile: rename of reproducible directories | expand

Commit Message

Sundeep KOKKONDA July 18, 2024, 10:04 a.m. UTC
From: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>

We do see a few reproducible issues are depending on the path length of the build directory.
https://bugzilla.yoctoproject.org/show_bug.cgi?id=15554

The current implementation of reproducible tests having different names for directories but with same length.
The build directory names are changed to have difefrent lenth.

Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
---
 meta/lib/oeqa/selftest/cases/reproducible.py | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

Comments

Yoann Congal July 18, 2024, 10:27 a.m. UTC | #1
Le jeu. 18 juil. 2024 à 12:05, Sundeep KOKKONDA via lists.openembedded.org
<sundeep.kokkonda=windriver.com@lists.openembedded.org> a écrit :

> From: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
>
> We do see a few reproducible issues are depending on the path length of
> the build directory.
> https://bugzilla.yoctoproject.org/show_bug.cgi?id=15554
>
> The current implementation of reproducible tests having different names
> for directories but with same length.
> The build directory names are changed to have difefrent lenth.
>
> Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
> ---
>  meta/lib/oeqa/selftest/cases/reproducible.py | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py
> b/meta/lib/oeqa/selftest/cases/reproducible.py
> index 7c6cf3eb1f..6932b0c2a5 100644
> --- a/meta/lib/oeqa/selftest/cases/reproducible.py
> +++ b/meta/lib/oeqa/selftest/cases/reproducible.py
> @@ -276,9 +276,13 @@ class ReproducibleTests(OESelftestTestCase):
>              os.chmod(save_dir, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP
> | stat.S_IROTH | stat.S_IXOTH)
>              self.logger.info('Non-reproducible packages will be copied
> to %s', save_dir)
>
> -        vars_A = self.do_test_build('reproducibleA',
> self.build_from_sstate)
> +        # The below bug shows that a few reproducible issues are depends
> on build dir path length.
> +        # https://bugzilla.yoctoproject.org/show_bug.cgi?id=15554
> +        # So, the reproducibleA & reproducibleB directories are changed
> to reproducible & reproducible-extended to have different size.
>
> -        vars_B = self.do_test_build('reproducibleB', False)
> +        vars_A = self.do_test_build('reproducible',
> self.build_from_sstate)
> +
> +        vars_B = self.do_test_build('reproducible-extended', False)
>

How about "reproducible-sstate" & "reproducible-no-sstate" (diff length but
match what happens under the hood) ?
Alternatively, maybe keep A/B with "reproducibleA" &
"reproducibleB-extended" ? (I'm afraid I will lose track which is which
with the current patch)

If you find that too bike-shedy, you can ignore, I'll learn the new names
eventually :-)

Thanks!

         # NOTE: The temp directories from the reproducible build are
> purposely
>          # kept after the build so it can be diffed for debugging.
> @@ -333,7 +337,7 @@ class ReproducibleTests(OESelftestTestCase):
>                  # Copy jquery to improve the diffoscope output usability
>                  self.copy_file(os.path.join(jquery_sysroot,
> 'usr/share/javascript/jquery/jquery.min.js'),
> os.path.join(package_html_dir, 'jquery.js'))
>
> -                run_diffoscope('reproducibleA', 'reproducibleB',
> package_html_dir, max_report_size=self.max_report_size,
> +                run_diffoscope('reproducible', 'reproducible-extended',
> package_html_dir, max_report_size=self.max_report_size,
>                          native_sysroot=diffoscope_sysroot,
> ignore_status=True, cwd=package_dir)
>
>          if fails:
> --
> 2.43.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#202196):
> https://lists.openembedded.org/g/openembedded-core/message/202196
> Mute This Topic: https://lists.openembedded.org/mt/107414164/4316185
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> yoann.congal@smile.fr]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Richard Purdie July 18, 2024, 11:14 a.m. UTC | #2
On Thu, 2024-07-18 at 03:04 -0700, Sundeep KOKKONDA via lists.openembedded.org wrote:
> From: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
> 
> We do see a few reproducible issues are depending on the path length of the build directory.
> https://bugzilla.yoctoproject.org/show_bug.cgi?id=15554
> 
> The current implementation of reproducible tests having different names for directories but with same length.
> The build directory names are changed to have difefrent lenth.
> 
> Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
> ---
>  meta/lib/oeqa/selftest/cases/reproducible.py | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py b/meta/lib/oeqa/selftest/cases/reproducible.py
> index 7c6cf3eb1f..6932b0c2a5 100644
> --- a/meta/lib/oeqa/selftest/cases/reproducible.py
> +++ b/meta/lib/oeqa/selftest/cases/reproducible.py
> @@ -276,9 +276,13 @@ class ReproducibleTests(OESelftestTestCase):
>              os.chmod(save_dir, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
>              self.logger.info('Non-reproducible packages will be copied to %s', save_dir)
>  
> -        vars_A = self.do_test_build('reproducibleA', self.build_from_sstate)
> +        # The below bug shows that a few reproducible issues are depends on build dir path length.
> +        # https://bugzilla.yoctoproject.org/show_bug.cgi?id=15554
> +        # So, the reproducibleA & reproducibleB directories are changed to reproducible & reproducible-extended to have different size.
>  
> -        vars_B = self.do_test_build('reproducibleB', False)
> +        vars_A = self.do_test_build('reproducible', self.build_from_sstate)
> +
> +        vars_B = self.do_test_build('reproducible-extended', False)
>  
>          # NOTE: The temp directories from the reproducible build are purposely
>          # kept after the build so it can be diffed for debugging.
> @@ -333,7 +337,7 @@ class ReproducibleTests(OESelftestTestCase):
>                  # Copy jquery to improve the diffoscope output usability
>                  self.copy_file(os.path.join(jquery_sysroot, 'usr/share/javascript/jquery/jquery.min.js'), os.path.join(package_html_dir, 'jquery.js'))
>  
> -                run_diffoscope('reproducibleA', 'reproducibleB', package_html_dir, max_report_size=self.max_report_size,
> +                run_diffoscope('reproducible', 'reproducible-extended', package_html_dir, max_report_size=self.max_report_size,
>                          native_sysroot=diffoscope_sysroot, ignore_status=True, cwd=package_dir)
>  
>          if fails:

Thanks Sundeep. Lets keep the A/B in there since people are familiar
with it as Yoann mentions but thanks for sending, otherwise looks good.
Can you quickly send a v2 please?

Cheers,

Richard
Sundeep KOKKONDA July 18, 2024, 11:23 a.m. UTC | #3
On 18-Jul-24 16:44, Richard Purdie wrote:
> CAUTION: This email comes from a non Wind River email account!
> Do not click links or open attachments unless you recognize the sender and know the content is safe.
>
> On Thu, 2024-07-18 at 03:04 -0700, Sundeep KOKKONDA via lists.openembedded.org wrote:
>> From: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
>>
>> We do see a few reproducible issues are depending on the path length of the build directory.
>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=15554
>>
>> The current implementation of reproducible tests having different names for directories but with same length.
>> The build directory names are changed to have difefrent lenth.
>>
>> Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
>> ---
>>   meta/lib/oeqa/selftest/cases/reproducible.py | 10 +++++++---
>>   1 file changed, 7 insertions(+), 3 deletions(-)
>>
>> diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py b/meta/lib/oeqa/selftest/cases/reproducible.py
>> index 7c6cf3eb1f..6932b0c2a5 100644
>> --- a/meta/lib/oeqa/selftest/cases/reproducible.py
>> +++ b/meta/lib/oeqa/selftest/cases/reproducible.py
>> @@ -276,9 +276,13 @@ class ReproducibleTests(OESelftestTestCase):
>>               os.chmod(save_dir, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
>>               self.logger.info('Non-reproducible packages will be copied to %s', save_dir)
>>
>> -        vars_A = self.do_test_build('reproducibleA', self.build_from_sstate)
>> +        # The below bug shows that a few reproducible issues are depends on build dir path length.
>> +        # https://bugzilla.yoctoproject.org/show_bug.cgi?id=15554
>> +        # So, the reproducibleA & reproducibleB directories are changed to reproducible & reproducible-extended to have different size.
>>
>> -        vars_B = self.do_test_build('reproducibleB', False)
>> +        vars_A = self.do_test_build('reproducible', self.build_from_sstate)
>> +
>> +        vars_B = self.do_test_build('reproducible-extended', False)
>>
>>           # NOTE: The temp directories from the reproducible build are purposely
>>           # kept after the build so it can be diffed for debugging.
>> @@ -333,7 +337,7 @@ class ReproducibleTests(OESelftestTestCase):
>>                   # Copy jquery to improve the diffoscope output usability
>>                   self.copy_file(os.path.join(jquery_sysroot, 'usr/share/javascript/jquery/jquery.min.js'), os.path.join(package_html_dir, 'jquery.js'))
>>
>> -                run_diffoscope('reproducibleA', 'reproducibleB', package_html_dir, max_report_size=self.max_report_size,
>> +                run_diffoscope('reproducible', 'reproducible-extended', package_html_dir, max_report_size=self.max_report_size,
>>                           native_sysroot=diffoscope_sysroot, ignore_status=True, cwd=package_dir)
>>
>>           if fails:
> Thanks Sundeep. Lets keep the A/B in there since people are familiar
> with it as Yoann mentions but thanks for sending, otherwise looks good.
> Can you quickly send a v2 please?

Sure, I'll use "reproducibleA" & "reproducibleB-extended" names.


Thanks,

Sundeep K.

>
> Cheers,
>
> Richard
>
Alexandre Belloni July 18, 2024, 9:58 p.m. UTC | #4
On 18/07/2024 12:27:43+0200, Yoann Congal via lists.openembedded.org wrote:
> Le jeu. 18 juil. 2024 � 12:05, Sundeep KOKKONDA via lists.openembedded.org
> <sundeep.kokkonda=windriver.com@lists.openembedded.org> a �crit :
> 
> > From: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
> >
> > We do see a few reproducible issues are depending on the path length of
> > the build directory.
> > https://bugzilla.yoctoproject.org/show_bug.cgi?id=15554
> >
> > The current implementation of reproducible tests having different names
> > for directories but with same length.
> > The build directory names are changed to have difefrent lenth.
> >
> > Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
> > ---
> >  meta/lib/oeqa/selftest/cases/reproducible.py | 10 +++++++---
> >  1 file changed, 7 insertions(+), 3 deletions(-)
> >
> > diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py
> > b/meta/lib/oeqa/selftest/cases/reproducible.py
> > index 7c6cf3eb1f..6932b0c2a5 100644
> > --- a/meta/lib/oeqa/selftest/cases/reproducible.py
> > +++ b/meta/lib/oeqa/selftest/cases/reproducible.py
> > @@ -276,9 +276,13 @@ class ReproducibleTests(OESelftestTestCase):
> >              os.chmod(save_dir, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP
> > | stat.S_IROTH | stat.S_IXOTH)
> >              self.logger.info('Non-reproducible packages will be copied
> > to %s', save_dir)
> >
> > -        vars_A = self.do_test_build('reproducibleA',
> > self.build_from_sstate)
> > +        # The below bug shows that a few reproducible issues are depends
> > on build dir path length.
> > +        # https://bugzilla.yoctoproject.org/show_bug.cgi?id=15554
> > +        # So, the reproducibleA & reproducibleB directories are changed
> > to reproducible & reproducible-extended to have different size.
> >
> > -        vars_B = self.do_test_build('reproducibleB', False)
> > +        vars_A = self.do_test_build('reproducible',
> > self.build_from_sstate)
> > +
> > +        vars_B = self.do_test_build('reproducible-extended', False)
> >
> 
> How about "reproducible-sstate" & "reproducible-no-sstate" (diff length but
> match what happens under the hood) ?

This was discussed out of the ML, because we have pids in paths, we need
more than 3 chars to ensure the difference un path length is not hidden
again.
diff mbox series

Patch

diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py b/meta/lib/oeqa/selftest/cases/reproducible.py
index 7c6cf3eb1f..6932b0c2a5 100644
--- a/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -276,9 +276,13 @@  class ReproducibleTests(OESelftestTestCase):
             os.chmod(save_dir, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
             self.logger.info('Non-reproducible packages will be copied to %s', save_dir)
 
-        vars_A = self.do_test_build('reproducibleA', self.build_from_sstate)
+        # The below bug shows that a few reproducible issues are depends on build dir path length.
+        # https://bugzilla.yoctoproject.org/show_bug.cgi?id=15554
+        # So, the reproducibleA & reproducibleB directories are changed to reproducible & reproducible-extended to have different size.
 
-        vars_B = self.do_test_build('reproducibleB', False)
+        vars_A = self.do_test_build('reproducible', self.build_from_sstate)
+
+        vars_B = self.do_test_build('reproducible-extended', False)
 
         # NOTE: The temp directories from the reproducible build are purposely
         # kept after the build so it can be diffed for debugging.
@@ -333,7 +337,7 @@  class ReproducibleTests(OESelftestTestCase):
                 # Copy jquery to improve the diffoscope output usability
                 self.copy_file(os.path.join(jquery_sysroot, 'usr/share/javascript/jquery/jquery.min.js'), os.path.join(package_html_dir, 'jquery.js'))
 
-                run_diffoscope('reproducibleA', 'reproducibleB', package_html_dir, max_report_size=self.max_report_size,
+                run_diffoscope('reproducible', 'reproducible-extended', package_html_dir, max_report_size=self.max_report_size,
                         native_sysroot=diffoscope_sysroot, ignore_status=True, cwd=package_dir)
 
         if fails: