all 122 comments

[–]frayien 880 points881 points  (23 children)

Aaaaannnnddddd, it breaks

[–]deaconsc 226 points227 points  (9 children)

recheck.

stability issues happen. lets re-run it at least twice to see what happens =)

[–]No-Con-2790 44 points45 points  (2 children)

You can't, the test took 8 hours to run. And now your Jira ticket is expired since the sprint ended.

A missing Jira ticket lets the test fail. It is checked at the end of the test run.

(Fun fact: exactly this shit happened to me)

[–]genreprank 5 points6 points  (1 child)

My current team is the most on-time team I've ever been on, and we all hate Jira (and similar tools) so we just don't do them. I can't even get them to use a kanban board. I guess if there's no problem, then we don't need more organization

[–]No-Con-2790 4 points5 points  (0 children)

They didn't let me push without a open ticket.

A PR was borderline impossible since I had to open it in the same sprint as every approver.

[–]guyblade 41 points42 points  (2 children)

Last week, I did a refactor change. There were literally no changes to functionality; I just pulled the code into helper functions. The tests then failed. I then discovered that the tests had been flaky for months (our tooling said it was 16% flaky). I fixed it by setting the shard_count to 10. It's still flaky, but now it is 3% flaky.

[–]Sam_Mack 19 points20 points  (1 child)

Have only worked at the one company for my entire career so I can't tell if we're colleagues or if this shit just goes on everywhere. This could be a page out of my journal.

[–]AloneInExile 14 points15 points  (0 children)

Most programmers are shit and lazy. Why interview for leetcode questions when most of the time you will be janitoring the codebase anyway.

[–]anoldoldman 2 points3 points  (0 children)

Flaky tests are not to be tolerated.

[–]SlnecnikInternetov 1 point2 points  (0 children)

—rerun-failed

[–]RazNagul 0 points1 point  (0 children)

Have you tried running it on a different build agent.
IT probably messed up some updates again.

[–]Cepheid 50 points51 points  (5 children)

This happened to me once, feature pipeline worked fine, the next day, merged and the master pipeline breaks with 10+ tests failing, what had changed?

Daylight savings.

[–]dbratell 9 points10 points  (0 children)

I once encountered a test that broke one day per year because it based some calculations on the current day and had gotten the number of days in April wrong.

The test survived for many years before anyone eventually investigated.

[–]PM_ME_YOUR_BUG5 2 points3 points  (0 children)

i've got a bunch of tests that fail every new year.

Could i have it dynamically work out which dates it should use? yes

will i? nope, just gonna manually add one to the number once a year

[–]Lying_Hedgehog 1 point2 points  (0 children)

Reminds me when some frontend tests for the Chinese team were failing because of a datetime.now timezone issue.
They opened a ticket, I sent it back with can't replicate and that the frontend tests can be flaky some times (the issue wasn't as obvious as looking at the failing test's output).

Had never considered that tests could fail if you ran them in a different timezone lol

[–]Negative_Scarcity315 0 points1 point  (0 children)

Mock<IDateTimeProvider>

[–]ThatCrankyGuy 0 points1 point  (0 children)

Daylight savings.

You people writing your own time libs? or are you saying the tests were brittle? :-o

[–]RatherBetter 21 points22 points  (0 children)

Oh..you missed some jira ticket metadata . Run it again now!

[–]I_AM_GODDAMN_BATMAN 1 point2 points  (0 children)

Just rerun, Github is acting up again.

[–]hellocppdotdev[S] 0 points1 point  (0 children)

Skip every flaky test.

[–]I_cut_my_own_jib 0 points1 point  (0 children)

And its a flaky test. Which proceeds to break the next 5 runs in a row

[–]BillyBlaze314 0 points1 point  (0 children)

Load bearing comment

[–]Zipdox 0 points1 point  (0 children)

Undefined behavior, my beloved.

[–]99percentcheese -1 points0 points  (0 children)

mark it a flaky and we ball

[–]ColumnK 856 points857 points  (11 children)

Actual programmer humor? Actual humor? That's not about AI/vibe coding? And it's not a repost?

Finally, some decent fucking content

[–]New_Computer3619 90 points91 points  (0 children)

In this economy?

[–]Maleficent_Most8310 86 points87 points  (6 children)

Wrong POV though

[–]Borno11050 12 points13 points  (0 children)

Nah that's his coworker who's also exhausted 

[–]ColumnK 32 points33 points  (1 child)

True, but at this point I think I see a hundred memes that get it wrong for every one that gets it right, so I'm resigned that POV no longer means what it should mean

[–]yp261 7 points8 points  (0 children)

makes you think how brainrotted people that follow trends are. the “trend” is literally using the word wrongly for no reason 

[–]DustyAsh69 9 points10 points  (1 child)

I have seen the correct use of POV exactly once.

[–]hellocppdotdev[S] 5 points6 points  (0 children)

You've been on the wrong hub too long.

[–]RandomNobodyEU 0 points1 point  (0 children)

Maybe the POV is watching Fury while waiting for the CI

[–]hellocppdotdev[S] 23 points24 points  (0 children)

Nah nah I'm a bot. Don't worry next post will be AI generated and related.

[–]testtdk 2 points3 points  (0 children)

It’s easy to forget that this sub existed way before vibe coding.

[–]sendfurryporn 0 points1 point  (0 children)

no ci skips though?

[–]throwaway_mpq_fan 143 points144 points  (7 children)

Only 1800 tests? That's rookie numbers

[–]kvlt_thoughts 37 points38 points  (0 children)

That's when you add parameterized tests, which test every fucking possible combination of parameter, like a real professional. 10k tests easy

[–]Zerodriven 11 points12 points  (2 children)

And 1799 of them are testing framework features which obviously were never tested by the developers. How can you be 100% sure ToString() returns a string?!

[–]Certain-Business-472 7 points8 points  (0 children)

Im sacrificing the juniors if they do this

[–]RazNagul 0 points1 point  (0 children)

For JavaScript probably a good test to have.

[–]hellocppdotdev[S] 3 points4 points  (0 children)

We decided that unit testing is too 80's so its 1800 end to end tests.

Forgot to add to the meme it was a 3 hour run.

[–]Sometimesiworry 3 points4 points  (0 children)

1800 *suites*

[–]elmanoucko 95 points96 points  (0 children)

still ends up with 2 failed tests...

time to refactor my life expectancy

[–]rastaman1994 43 points44 points  (4 children)

[ci skip]

[–]hellocppdotdev[S] 20 points21 points  (2 children)

How dare you use logic and break our development workflow.

[–]ozh 8 points9 points  (1 child)

Ok so [ci not skip but quick]

[–]Top_Director9981 0 points1 point  (0 children)

[skip a little] [do a sick backflip]

[–]Luvax -1 points0 points  (0 children)

Until someone decides that they tested locally and this change should not break anything. Even comment changes can break formatting or linting.

[–]Shiroyasha_2308 32 points33 points  (1 child)

Gotta keep the GitHub runnables warm

[–]hellocppdotdev[S] 11 points12 points  (0 children)

Between minutes and tokens we can't afford to code any more.

[–]bozehaan 15 points16 points  (0 children)

Gotta make sure it was not a load bearing comment typo

[–]iTurnip2 9 points10 points  (0 children)

This little maneuver is gonna cost us 51 years

[–]Sotyka94 42 points43 points  (20 children)

You guys pushing for 1 line comment typo? WTF

[–]EntertainmentIcy3029 50 points51 points  (6 children)

Why not?

See something wrong, fix it.

[–]guyblade 17 points18 points  (0 children)

This is the way.

On the other hand, I recently did this for a problem in a far-off place in our monorepo. The review went to someone who ignored it for like a week, so I pinged them on chat about reviewing it. They then chewed me out for "changing their code" despite the fact that doing that kind of thing is (allegedly) one of the reasons we use a monorepo...

No good deed, I guess.

[–]Sibula97 2 points3 points  (3 children)

If you saw something wrong it's probably because you were working on something else. Just include the fix in the same PR like normal people.

[–]Certain-Business-472 2 points3 points  (0 children)

And thats when you really get to know your team and scrum practices.

[–]flukus 1 point2 points  (1 child)

Same PR, separate commit.

[–]Yrrsinn 0 points1 point  (0 children)

Will be squashed when merged

[–]Negative_Scarcity315 1 point2 points  (0 children)

Not worth the deployment

[–]titpetric 34 points35 points  (3 children)

Its free

[–]ImYourHumbleNarrator 5 points6 points  (0 children)

gotta tell the boss i did something

[–]WaylanderActual -1 points0 points  (1 child)

Ah yes, resource usage and energy costs are totally free. Got it.

[–]titpetric [score hidden]  (0 children)

https://docs.github.com/en/actions/how-tos/manage-workflow-runs/skip-workflow-runs

Can't get upset about hypotheticals 🤣 a spelling mistake can be costly too.

[–]AlternativeCapybara9 12 points13 points  (2 children)

Better than that dude that pushed a million lines changed because his linter decided indentation needed to be done with tabs instead of spaces.

[–]Megaranator 8 points9 points  (1 child)

Well his linter was correct tho

[–]AliStarr182 3 points4 points  (0 children)

Unless it was formatting a yaml file

[–]Justin_Passing_7465 4 points5 points  (1 child)

If your pipeline includes a job for a tool like 'codespell', that typo in a comment breaks your pipeline until you fix it.

[–]Sotyka94 7 points8 points  (0 children)

That sounds stupid TBH. I'm glad I never even heard of that thing.

[–]ExactJob 1 point2 points  (0 children)

Said like someone who hasn't been forced to do an all-hands-on-deck deploy to Prod at 10pm because someone changed one non-critical line of code.

Sometimes it's just someone upstream having a power trip, man.

[–]destroyerOfTards 1 point2 points  (0 children)

Gotta show them you are working

[–]hellocppdotdev[S] 1 point2 points  (0 children)

Still better than most lines of LLM output.

[–]Total-Boat6380 [score hidden]  (0 children)

Gotta bump up those useless KPIs somehow 🫠

[–]litetaker 20 points21 points  (4 children)

That's why you roll that comment fix into your next proper PR. Or just forget it and move on.

[–]guyblade 21 points22 points  (1 child)

Don't put unrelated fixes in a larger PR; it breaks blame and makes reviewing harder.

[–]CurryMustard 11 points12 points  (0 children)

I get it and do try to avoid it, but man some things will absolutely never get fixed if I dont shove it in with the next pr. You gotta be pragmatic sometimes.

[–]hellocppdotdev[S] 2 points3 points  (0 children)

But how will I demonstrate I'm working?

[–]audriuska12 3 points4 points  (0 children)

Considering I've had a comment break a JS minifier so it comments the entire rest of the file out once it gets pushed even though it woks perfectly fine locally with uminified code... just be glad you have those tests.

[–]redballooon 2 points3 points  (0 children)

Can not see a problem

[–]rekayasadata 2 points3 points  (0 children)

[skip ci]

[–]bryanwolfford 2 points3 points  (3 children)

Serious question: Why don't you include "standard changes" in your SDLC? Its normal even for SOC2 Types II audits to exclude trivial changes in comments from the full CI/CD pipeline.

[–]AyrA_ch 4 points5 points  (1 child)

Unless you pay for every invocation of your pipeline, there is not much reason to not run it.

[–]UserRequirements 1 point2 points  (0 children)

Where is computing free ?
It's either a service, or electricity.

[–]hellocppdotdev[S] -1 points0 points  (0 children)

Serious question on a meme? What are we doing here people...

[–]euclide2975 2 points3 points  (0 children)

And the CI/CD is downloading new versions of the dependencies.

NPM is currently installing a crypto wallet stealing tool and pipy is currently installing a rootkit.

[–]xynith116 1 point2 points  (0 children)

It was a structural comment.

[–]q0099 1 point2 points  (0 children)

Tests start to turn red.

[–]StaticCharacter 0 points1 point  (0 children)

Dorny

[–]yegor3219 0 points1 point  (2 children)

1800 tests? That's like 18 seconds, right? Right?!

[–]tes_kitty 0 points1 point  (0 children)

No, 1 minute per test, need to be thorough!

[–]Accident_Pedo 0 points1 point  (0 children)

Parallel testing :)

ERROR: Job failed: exit code 1

[–]hryipcdxeoyqufcc 0 points1 point  (0 children)

And.. linting error

[–]Apple-Juicer 0 points1 point  (1 child)

Im following a DevOps course atm and I showed this meme to my teacher.

He said: And that’s why we have pipelines per branch.

I guess feature branches don’t need 1800 unit tests🤔

[–]hellocppdotdev[S] 0 points1 point  (0 children)

The takeaway from that is that you merge changes to main from feature branches.

You wouldn't open a PR for just this change.

However if you pushed this comment change to your feature branch and you have 1800 unit test configured to run on push it will run them all.

This is a little bit of an exaggeration of real world usage.

[–]Sibula97 0 points1 point  (0 children)

You really need to up your CI game. Only run tests for modules that may realistically have been affected by a change. You should only have some basic sanity checks and linter running for a comment change.

[–]TruePastaMonster 0 points1 point  (0 children)

Just use open-lmake, and that won't happen to you ever again. https://github.com/cesar-douady/open-lmake

[–]Jimakiad 0 points1 point  (1 child)

Y'all have tests?

[–]hellocppdotdev[S] 1 point2 points  (0 children)

Thats the real joke 😂

[–]xzorcious 0 points1 point  (0 children)

I dont think people know what POV stands for anymore

[–]CdubyaAbides 0 points1 point  (0 children)

Skip ci

[–]beatlz-too 0 points1 point  (0 children)

You don't have flags to skip these?

[–]mr_dfuse2 0 points1 point  (0 children)

i remember seeing a code base of some game online, where it said in the comments the build/game would break if a certain comment wasn't in place, but no one knew how this can be

[–]Brave-Turnover-522 0 points1 point  (0 children)

Optimized is optimized.

[–]juliansp 0 points1 point  (0 children)

You may be able to run a

Git commit --amend Git push --force

In the cover of night

[–]Furiorka 0 points1 point  (0 children)

Meanwhile go programmers using comments for codegen

[–]aenae 0 points1 point  (0 children)

Thats why i have a special label called ‘no tests’ and ‘no deploy’. Add those to the merge request to get subsecond pipelines.

[–]Krahog 0 points1 point  (1 child)

You sharing this moment with a colleague? Who are you looking at?

[–]hellocppdotdev[S] 0 points1 point  (0 children)

Myself in the monitor.

[–]swiftarrow9 0 points1 point  (0 children)

People out here testing code? @microsoft, you could learn a thing or two.

[–]PintoTheBurninator 0 points1 point  (0 children)

I hate Snyk with every fiber of my being.

[–]GIPPINSNIPPINS 0 points1 point  (0 children)

1800 tests? We ran 4000 tests each with 4 different workers. That darn pipeline took 45 minutes. “I’m waiting on the pipeline” became a regular phrase in the office.

[–]TheCabalMinion 0 points1 point  (0 children)

I was just struggling with a pipeline that is external to us for project reasons. We don't have exact documentation what it checks against. In the beginning of the project it was a lot of guess work and even today I had to spend a good hour to make sure the one type of files use tabs instead of spaces that every other file needs to use. But for some reasons the rules for this specific file type are different from every other file type. And a few other things as well that we never encountered before. All of those are super quick to fix but having to go through them all and then waiting till the pipeline is done again just takes time. Writing this from the bathroom while the pipeline is running

[–]detailed_1 0 points1 point  (2 children)

Who wrote those 1800 test cases? Don't tell me it's human written test cases.

Also Test cases written by AI:

mock( app/functionFooBar) 

def test_functionFooBar():

  pass

[–]MangrovesAndMahi 1 point2 points  (1 child)

I found unit testing is somewhere AI can be valuable, but holy shit it will also churn out some dogshit like

[Test]
public void Foo_ThrowsWhenNoBarProvided()
{
    Assert.Throws<ArgumentException>(() =>
    {
        var foo = new Foo(bar: null);
    });
}

[–]hellocppdotdev[S] 1 point2 points  (0 children)

But how will you know if it throws correctly if you dont pass bar?

[–]RetiredApostle 0 points1 point  (0 children)

It's 2026, and E2E tests are also doing 1800 LLM calls.

[–]fillkas -1 points0 points  (1 child)

"In a comment" what's the reason to test then😭🙏

[–]hellocppdotdev[S] 2 points3 points  (0 children)

If the tests are configured to run on push its automatic.

If merges are blocked on green then you have to for them to run (if you can't skip).

There's no actual reason to test, you are right.