Re: [Outreachy][PATCH] Port helper/test-advise.c to unit-tests/t-advise.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12-ene-2024 14:44:37, Junio C Hamano wrote:
> Achu Luma <ach.lumap@xxxxxxxxx> writes:
> 
> > In the recent codebase update (8bf6fbd00d (Merge branch
> > 'js/doc-unit-tests', 2023-12-09)), a new unit testing framework was
> > merged, providing a standardized approach for testing C code. Prior to
> > this update, some unit tests relied on the test helper mechanism,
> > lacking a dedicated unit testing framework. It's more natural to perform
> > these unit tests using the new unit test framework.
> >
> > This commit migrates the unit tests for advise_if_enabled functionality
> > from the legacy approach using the test-tool command `test-tool advise`
> > in t/helper/test-advise.c to the new unit testing framework
> > (t/unit-tests/test-lib.h).
> >
> > The migration involves refactoring the tests to utilize the testing
> > macros provided by the framework (TEST() and check_*()).
> 
> In the light of the presense of work like this one
> 
>   https://lore.kernel.org/git/c870a0b6-9fa8-4d00-a5a6-661ca175805f@xxxxxxxxx/
> 
> I am not sure if moving this to unit-test framework is a good thing,
> at least right at this moment.
> 
> To test the effect of setting one configuration variable, and ensure
> it results in a slightly different advice message output to the
> standard error stream, "test-tool advice" needs only a single line
> of patch, but if we started with this version, how much work does it
> take to run the equivalent test in the other patch if it were to be
> rebased on top of this change?  It won't be just the matter of
> adding a new TEST(check_advise_if_enabled()) call to cmd_main(),
> will it?

Maybe something like this will do the trick:

diff --git a/t/unit-tests/t-advise.c b/t/unit-tests/t-advise.c
index 15df29c955..ac7d2620ef 100644
--- a/t/unit-tests/t-advise.c
+++ b/t/unit-tests/t-advise.c
@@ -6,6 +6,7 @@

 static const char expect_advice_msg[] = "hint: This is a piece of advice\n"
                                        "hint: Disable this message with \"git config advice.nestedTag false\"\n";
+static const char expect_advice_msg_without_disable_hint[] = "hint: This is a piece of advice\n";
 static const char advice_msg[] = "This is a piece of advice";
 static const char out_file[] = "./output.txt";

@@ -44,7 +45,7 @@ int cmd_main(int argc, const char **argv) {

        TEST(check_advise_if_enabled(advice_msg, NULL, expect_advice_msg),
                "advice should be printed when config variable is unset");
-       TEST(check_advise_if_enabled(advice_msg, "true", expect_advice_msg),
+       TEST(check_advise_if_enabled(advice_msg, "true", expect_advice_msg_without_disable_hint),
                "advice should be printed when config variable is set to true");
        TEST(check_advise_if_enabled(advice_msg, "false", ""),
                "advice should not be printed when config variable is set to false");

> 
> I doubt the issue is not about "picking the right moment" to
> transition from the test-tool to unit testing framework in this
> particular case.  Is "check-advice-if-enabled" a bit too high level
> a feature to be a good match to "unit" testing, I have to wonder?

I don't have a formed opinion on the change, but I don't see it making
things worse.  I share your doubts, though.

Thanks.




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux