Skip to content
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

Multi-line strings not supported for assert_equals #269

Open
Chemaclass opened this issue Jun 19, 2024 · 1 comment
Open

Multi-line strings not supported for assert_equals #269

Chemaclass opened this issue Jun 19, 2024 · 1 comment
Labels
bug Something isn't working

Comments

@Chemaclass
Copy link
Member

Q A
OS macOS / Linux / Windows
Shell bash
bashunit version 0.12.0

Summary

Discovered: #266 (comment)

Current behavior

Would it make sense to emit an error in case of multi-line strings telling the user that its not supported?

I wish that would be possible (or know how to do that...), however, at this point:

function assert_equals() {
  local expected="$1"
  local actual="$2"
  # ... etc ...

The issue is that there is no possibility to know if the second argumnet is a line that belong the text from the first argument or is a real new argument. Does it make sense? Therefore, for example, in here:

function assert_contains() {
  local expected="$1"
  local actual_arr=("${@:2}")
  local actual=$(printf '%s\n' "${actual_arr[@]}")

  if ! [[ $actual == *"$expected"* ]]; then
  # ... etc

what I am doing is to gather together all args (starting from the 2nd), store it into actual_arr and then concat all items with a new line \n into actual and so I can manipulate them easier. Does it makes sense and helps understand the intrinsic issue coming from bash? At least, I didn't find another way around to make this work so far... Maybe at a future time we find a better way to do this, but for now, I think it's good enough if this works in your PHPStan CI 😄

Expected behavior

Either allow the functionality to work OR notify the user that it's not supported

@Chemaclass Chemaclass added the bug Something isn't working label Jun 19, 2024
@staabm
Copy link
Contributor

staabm commented Jun 19, 2024

I wonder whether this problem is related to IFS:

https://unix.stackexchange.com/questions/184863/what-is-the-meaning-of-ifs-n-in-bash-scripting

?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Status: No status
Development

No branches or pull requests

2 participants