Skip to content

test(fix): Use /bin/sh as interpreter for mock_mpv.sh - 4301 #4302

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 3, 2025

Conversation

tebriel
Copy link
Contributor

@tebriel tebriel commented Jul 3, 2025

Description

Not all systems have bash at /bin/bash. /bin/sh is POSIX and we can trust it to be present. We don't use any bash features in this simple script so should should be an easy, portable change.

Related Issues

Fixes #4301

Type of Change

  • Bug fix
  • New feature
  • Documentation update
  • Refactor
  • Other (please describe):

Checklist

Please review and check all that apply:

  • My code follows the project’s coding style
  • I have tested the changes locally
  • I have added or updated documentation as needed
  • I have added tests that prove my fix/feature works (or explain why not)
  • All existing and new tests pass

How to Test

In an environment without /bin/bash attempt to run the mpv tests and note the
ones that execute the test sh script fail.

go test -tags=netgo -count=1 ./core/playback/mpv

Screenshots / Demos (if applicable)

Additional Notes

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @tebriel, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a portability issue in test scripts by modifying the shebang line. The change ensures that test scripts can locate the bash executable reliably across different system configurations, preventing test failures when bash is not located at the default /bin/bash path.

Highlights

  • Test Script Portability: Updated the shebang in an embedded bash script within mpv_test.go from #!/bin/bash to #!/usr/bin/env bash. This change allows the system's PATH to be used to locate the bash executable, making the tests more robust on systems where bash is installed in a non-standard location.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

The pull request aims to improve the portability of a test script by using /usr/bin/env bash to locate the bash interpreter, instead of a hardcoded /bin/bash path. The change is correct and achieves its goal. I've suggested a further improvement to use #!/bin/sh for even greater portability, as the script does not contain any bash-specific features.

@tebriel tebriel force-pushed the bash-interpreter/4301 branch from e245474 to e1a99a1 Compare July 3, 2025 01:39
@tebriel tebriel changed the title test(fix): Use /usr/bin/env to find bash executable - 4301 test(fix): Use /bin/sh as interpreter for mock_mpv.sh - 4301 Jul 3, 2025
Not all systems have bash at `/bin/bash`. `/bin/sh` is POSIX and should
be present on all systems making this much more portable. No bash
features are currently used in the script so this change should be safe.
@tebriel tebriel force-pushed the bash-interpreter/4301 branch from e1a99a1 to 1a260f7 Compare July 3, 2025 01:43
@deluan deluan merged commit ee34433 into navidrome:master Jul 3, 2025
31 checks passed
@deluan
Copy link
Member

deluan commented Jul 3, 2025

Thanks!

@tebriel tebriel deleted the bash-interpreter/4301 branch July 3, 2025 01:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug]: mpv_test.go "start" tests fail if /bin/bash isn't available
2 participants