@@ -57,11 +57,11 @@ TEST_F(PathTest, ToNamespacedPath) {
5757#ifdef _WIN32
5858 BufferValue data (isolate_,
5959 v8::String::NewFromUtf8 (isolate_, " " ).ToLocalChecked ());
60- ToNamespacedPath (*env, &data);
60+ ToNamespacedPath (*env, &data, true );
6161 EXPECT_EQ (data.ToStringView (), " " ); // Empty string should not be mutated
6262 BufferValue data_2 (
6363 isolate_, v8::String::NewFromUtf8 (isolate_, " C://" ).ToLocalChecked ());
64- ToNamespacedPath (*env, &data_2);
64+ ToNamespacedPath (*env, &data_2, true );
6565 EXPECT_EQ (data_2.ToStringView (), " \\\\ ?\\ C:\\ " );
6666 BufferValue data_3 (
6767 isolate_,
@@ -70,7 +70,7 @@ TEST_F(PathTest, ToNamespacedPath) {
7070 " C:\\ workspace\\ node-test-binary-windows-js-"
7171 " suites\\ node\\ test\\ fixtures\\ permission\\ deny\\ protected-file.md" )
7272 .ToLocalChecked ());
73- ToNamespacedPath (*env, &data_3);
73+ ToNamespacedPath (*env, &data_3, true );
7474 EXPECT_EQ (
7575 data_3.ToStringView (),
7676 " \\\\ ?\\ C:\\ workspace\\ node-test-binary-windows-js-"
@@ -79,8 +79,67 @@ TEST_F(PathTest, ToNamespacedPath) {
7979 isolate_,
8080 v8::String::NewFromUtf8 (isolate_, " \\\\ ?\\ c:\\ Windows/System" )
8181 .ToLocalChecked ());
82- ToNamespacedPath (*env, &data_4);
82+ ToNamespacedPath (*env, &data_4, true );
8383 EXPECT_EQ (data_4.ToStringView (), " \\\\ ?\\ c:\\ Windows\\ System" );
84+ BufferValue data5 (
85+ isolate_,
86+ v8::String::NewFromUtf8 (isolate_, " C:\\ path\\ COM1" ).ToLocalChecked ());
87+ ToNamespacedPath (*env, &data5, true );
88+ EXPECT_EQ (data5.ToStringView (), " \\\\ .\\ COM1" );
89+ BufferValue data6 (isolate_,
90+ v8::String::NewFromUtf8 (isolate_, " COM1" ).ToLocalChecked ());
91+ ToNamespacedPath (*env, &data6, true );
92+ EXPECT_EQ (data6.ToStringView (), " \\\\ .\\ COM1" );
93+ BufferValue data7 (isolate_,
94+ v8::String::NewFromUtf8 (isolate_, " LPT1" ).ToLocalChecked ());
95+ ToNamespacedPath (*env, &data7, true );
96+ EXPECT_EQ (data7.ToStringView (), " \\\\ .\\ LPT1" );
97+ BufferValue data8 (
98+ isolate_, v8::String::NewFromUtf8 (isolate_, " C:\\ LPT1" ).ToLocalChecked ());
99+ ToNamespacedPath (*env, &data8, true );
100+ EXPECT_EQ (data8.ToStringView (), " \\\\ .\\ LPT1" );
101+ BufferValue data9 (
102+ isolate_,
103+ v8::String::NewFromUtf8 (isolate_, " PhysicalDrive0" ).ToLocalChecked ());
104+ ToNamespacedPath (*env, &data9, true );
105+ EXPECT_EQ (data9.ToStringView (), " \\\\ .\\ PhysicalDrive0" );
106+ BufferValue data10 (
107+ isolate_,
108+ v8::String::NewFromUtf8 (isolate_, " pipe\\ mypipe" ).ToLocalChecked ());
109+ ToNamespacedPath (*env, &data10, true );
110+ EXPECT_EQ (data10.ToStringView (), " \\\\ .\\ pipe\\ mypipe" );
111+ BufferValue data11 (
112+ isolate_,
113+ v8::String::NewFromUtf8 (isolate_, " MAILSLOT\\ mySlot" ).ToLocalChecked ());
114+ ToNamespacedPath (*env, &data11, true );
115+ EXPECT_EQ (data11.ToStringView (), " \\\\ .\\ MAILSLOT\\ mySlot" );
116+ BufferValue data12 (isolate_,
117+ v8::String::NewFromUtf8 (isolate_, " NUL" ).ToLocalChecked ());
118+ ToNamespacedPath (*env, &data12, true );
119+ EXPECT_EQ (data12.ToStringView (), " \\\\ .\\ NUL" );
120+ BufferValue data13 (
121+ isolate_, v8::String::NewFromUtf8 (isolate_, " Tape0" ).ToLocalChecked ());
122+ ToNamespacedPath (*env, &data13, true );
123+ EXPECT_EQ (data13.ToStringView (), " \\\\ .\\ Tape0" );
124+ BufferValue data14 (
125+ isolate_, v8::String::NewFromUtf8 (isolate_, " Changer0" ).ToLocalChecked ());
126+ ToNamespacedPath (*env, &data14, true );
127+ EXPECT_EQ (data14.ToStringView (), " \\\\ .\\ Changer0" );
128+ BufferValue data15 (isolate_,
129+ v8::String::NewFromUtf8 (isolate_, " \\\\ .\\ pipe\\ somepipe" )
130+ .ToLocalChecked ());
131+ ToNamespacedPath (*env, &data15, true );
132+ EXPECT_EQ (data15.ToStringView (), " \\\\ .\\ pipe\\ somepipe" );
133+ BufferValue data16 (
134+ isolate_,
135+ v8::String::NewFromUtf8 (isolate_, " \\\\ .\\ COM1" ).ToLocalChecked ());
136+ ToNamespacedPath (*env, &data16, true );
137+ EXPECT_EQ (data16.ToStringView (), " \\\\ .\\ COM1" );
138+ BufferValue data17 (
139+ isolate_,
140+ v8::String::NewFromUtf8 (isolate_, " \\\\ .\\ LPT1" ).ToLocalChecked ());
141+ ToNamespacedPath (*env, &data17, true );
142+ EXPECT_EQ (data17.ToStringView (), " \\\\ .\\ LPT1" );
84143#else
85144 BufferValue data (
86145 isolate_,
0 commit comments