From 5b10396f488af68700819168d84e4de92f92cbd7 Mon Sep 17 00:00:00 2001 From: Svyatoslav Kuzmich Date: Wed, 27 Oct 2021 22:16:10 +0300 Subject: [PATCH] [stdlib] Test that modification of the array returned by toCharArray() doesn't affect the original string --- libraries/stdlib/test/text/StringTest.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libraries/stdlib/test/text/StringTest.kt b/libraries/stdlib/test/text/StringTest.kt index 5e8658f2fb6..a3a168fc01f 100644 --- a/libraries/stdlib/test/text/StringTest.kt +++ b/libraries/stdlib/test/text/StringTest.kt @@ -123,6 +123,19 @@ class StringTest { assertFailsWith { s.toCharArray(-1) } assertFailsWith { s.toCharArray(0, 6) } assertFailsWith { s.toCharArray(3, 1) } + + // Array modifications must not affect original string + val a = s.toCharArray() + for (i in a.indices) { + a[i] = ' ' + } + assertContentEquals(charArrayOf(' ', ' ', ' ', ' ', ' '), a) + val a13 = s.toCharArray(1, 3) + for (i in a13.indices) { + a13[i] = ' ' + } + assertContentEquals(charArrayOf(' ', ' '), a13) + assertEquals("hello", s) } @Test fun isEmptyAndBlank() = withOneCharSequenceArg { arg1 ->