mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00

We need a way to escape systemd command lines properly as systemd treats unrecognised escape sequences as separate literal characters. This helper function does that.
25 lines
835 B
Ruby
25 lines
835 B
Ruby
# frozen_string_literal: true
|
|
|
|
require "utils/service"
|
|
|
|
RSpec.describe Utils::Service do
|
|
describe "::systemd_quote" do
|
|
it "quotes empty strings correctly" do
|
|
expect(described_class.systemd_quote("")).to eq '""'
|
|
end
|
|
|
|
it "quotes strings with special characters escaped correctly" do
|
|
expect(described_class.systemd_quote("\a\b\f\n\r\t\v\\"))
|
|
.to eq '"\\a\\b\\f\\n\\r\\t\\v\\\\"'
|
|
expect(described_class.systemd_quote("\"' ")).to eq "\"\\\"' \""
|
|
end
|
|
|
|
it "does not escape characters that do not need escaping" do
|
|
expect(described_class.systemd_quote("daemon off;")).to eq '"daemon off;"'
|
|
expect(described_class.systemd_quote("--timeout=3")).to eq '"--timeout=3"'
|
|
expect(described_class.systemd_quote("--answer=foo bar"))
|
|
.to eq '"--answer=foo bar"'
|
|
end
|
|
end
|
|
end
|