15bebb993Sopenharmony_ci/*
25bebb993Sopenharmony_ci * Copyright (C) 2024 Huawei Device Co., Ltd.
35bebb993Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
45bebb993Sopenharmony_ci * you may not use this file except in compliance with the License.
55bebb993Sopenharmony_ci * You may obtain a copy of the License at
65bebb993Sopenharmony_ci *
75bebb993Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
85bebb993Sopenharmony_ci *
95bebb993Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
105bebb993Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
115bebb993Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
125bebb993Sopenharmony_ci * See the License for the specific language governing permissions and
135bebb993Sopenharmony_ci * limitations under the License.
145bebb993Sopenharmony_ci */
155bebb993Sopenharmony_ci
165bebb993Sopenharmony_ciimport fs from '@ohos.file.fs';
175bebb993Sopenharmony_ciimport fileuri from '@ohos.file.fileuri';
185bebb993Sopenharmony_ci
195bebb993Sopenharmony_ciimport { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index';
205bebb993Sopenharmony_ci
215bebb993Sopenharmony_ciconst TAG = 'FsCopyTest';
225bebb993Sopenharmony_cidescribe("FsCopyTest", function () {
235bebb993Sopenharmony_ci  let pathDir = '/data/storage/el2/base/haps/entry/files';
245bebb993Sopenharmony_ci  let srcDirPathLocal = pathDir + "/src";
255bebb993Sopenharmony_ci  let srcFilePathLocal = srcDirPathLocal + '/srcFile.txt';
265bebb993Sopenharmony_ci  let dstDirPathLocal = pathDir + "/dest";
275bebb993Sopenharmony_ci  let dstFilePathLocal = dstDirPathLocal + '/dstFile.txt';
285bebb993Sopenharmony_ci  let muiltDirLocal = srcDirPathLocal+"/test1";
295bebb993Sopenharmony_ci  let srcNoSuffixFileLocal = srcDirPathLocal + '/test';
305bebb993Sopenharmony_ci
315bebb993Sopenharmony_ci  let srcDirUriLocal = fileuri.getUriFromPath(srcDirPathLocal);
325bebb993Sopenharmony_ci  let srcFileUriLocal = fileuri.getUriFromPath(srcFilePathLocal);
335bebb993Sopenharmony_ci  let dstDirUriLocal = fileuri.getUriFromPath(dstDirPathLocal);
345bebb993Sopenharmony_ci  let dstFileUriLocal = fileuri.getUriFromPath(dstFilePathLocal);
355bebb993Sopenharmony_ci  let srcNoSuffixFileUriLocal = fileuri.getUriFromPath(srcNoSuffixFileLocal);
365bebb993Sopenharmony_ci
375bebb993Sopenharmony_ci  beforeAll(function () {
385bebb993Sopenharmony_ci    console.info(TAG, 'beforeAll called')
395bebb993Sopenharmony_ci  });
405bebb993Sopenharmony_ci
415bebb993Sopenharmony_ci  afterAll(function () {
425bebb993Sopenharmony_ci    console.info(TAG, 'afterAll called')
435bebb993Sopenharmony_ci  });
445bebb993Sopenharmony_ci
455bebb993Sopenharmony_ci  beforeEach(function () {
465bebb993Sopenharmony_ci    console.info(TAG, 'beforeEach called')
475bebb993Sopenharmony_ci  });
485bebb993Sopenharmony_ci
495bebb993Sopenharmony_ci  afterEach(function () {
505bebb993Sopenharmony_ci    console.info(TAG, 'afterEach called')
515bebb993Sopenharmony_ci  });
525bebb993Sopenharmony_ci
535bebb993Sopenharmony_ci  function isDirectory(path){
545bebb993Sopenharmony_ci    try {
555bebb993Sopenharmony_ci      console.info("Fs_Copy_Test020:path",path);
565bebb993Sopenharmony_ci      let stat = fs.statSync(path);
575bebb993Sopenharmony_ci      if (stat.isDirectory()) {
585bebb993Sopenharmony_ci        return true;
595bebb993Sopenharmony_ci      }
605bebb993Sopenharmony_ci      return false;
615bebb993Sopenharmony_ci    } catch (error) {
625bebb993Sopenharmony_ci      console.error("Error:", error);
635bebb993Sopenharmony_ci      return false;
645bebb993Sopenharmony_ci    }
655bebb993Sopenharmony_ci  }
665bebb993Sopenharmony_ci
675bebb993Sopenharmony_ci  /*
685bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test001
695bebb993Sopenharmony_ci   * @tc.desc:test fs.copy with wrong params
705bebb993Sopenharmony_ci   * @tc.type: FUNC
715bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
725bebb993Sopenharmony_ci   */
735bebb993Sopenharmony_ci  it("Fs_Copy_Test001", 0, async function (done) {
745bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test001 start.');
755bebb993Sopenharmony_ci    try {
765bebb993Sopenharmony_ci      await fs.copy("aaa", "bbb", (err) => {
775bebb993Sopenharmony_ci        if (err) {
785bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test001 failed, with error message: " + err.message + ", error code: " + err.code);
795bebb993Sopenharmony_ci        } else {
805bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test001 success. ");
815bebb993Sopenharmony_ci        }
825bebb993Sopenharmony_ci        expect().assertFail();
835bebb993Sopenharmony_ci        done();
845bebb993Sopenharmony_ci      })
855bebb993Sopenharmony_ci    } catch (err) {
865bebb993Sopenharmony_ci      console.error("Fs_Copy_Test001 failed with invalid param: " + err.message + ", error code: " + err.code);
875bebb993Sopenharmony_ci      expect(true).assertTrue();
885bebb993Sopenharmony_ci      done();
895bebb993Sopenharmony_ci    }
905bebb993Sopenharmony_ci  });
915bebb993Sopenharmony_ci
925bebb993Sopenharmony_ci  /*
935bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test002
945bebb993Sopenharmony_ci   * @tc.desc:test fs.copy with sandbox path
955bebb993Sopenharmony_ci   * @tc.type: FUNC
965bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
975bebb993Sopenharmony_ci   */
985bebb993Sopenharmony_ci  it("Fs_Copy_Test002", 0, async function (done) {
995bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test002 start.');
1005bebb993Sopenharmony_ci    try {
1015bebb993Sopenharmony_ci      await fs.copy(pathDir, "bbb", (err) => {
1025bebb993Sopenharmony_ci        if (err) {
1035bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test002 failed, with error message: " + err.message + ", error code: " + err.code);
1045bebb993Sopenharmony_ci        } else {
1055bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test002 success. ");
1065bebb993Sopenharmony_ci        }
1075bebb993Sopenharmony_ci        expect().assertFail();
1085bebb993Sopenharmony_ci        done();
1095bebb993Sopenharmony_ci      })
1105bebb993Sopenharmony_ci    } catch (err) {
1115bebb993Sopenharmony_ci      console.error("Fs_Copy_Test002 failed with invalid param: " + err.message + ", error code: " + err.code);
1125bebb993Sopenharmony_ci      expect(true).assertTrue();
1135bebb993Sopenharmony_ci      done();
1145bebb993Sopenharmony_ci    }
1155bebb993Sopenharmony_ci  });
1165bebb993Sopenharmony_ci
1175bebb993Sopenharmony_ci  /*
1185bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test003
1195bebb993Sopenharmony_ci   * @tc.desc:test fs.copy with not exist dir
1205bebb993Sopenharmony_ci   * @tc.type: FUNC
1215bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
1225bebb993Sopenharmony_ci   */
1235bebb993Sopenharmony_ci  it("Fs_Copy_Test003", 0, async function (done) {
1245bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test003 start.');
1255bebb993Sopenharmony_ci    try {
1265bebb993Sopenharmony_ci      await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => {
1275bebb993Sopenharmony_ci        if (err) {
1285bebb993Sopenharmony_ci          console.error(TAG, "Fs_Copy_Test003 failed: " + err.message + ", error code: " + err.code);
1295bebb993Sopenharmony_ci          expect(true).assertTrue();
1305bebb993Sopenharmony_ci        } else {
1315bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test003 success.");
1325bebb993Sopenharmony_ci          expect().assertFail();
1335bebb993Sopenharmony_ci        }
1345bebb993Sopenharmony_ci        done();
1355bebb993Sopenharmony_ci      })
1365bebb993Sopenharmony_ci    } catch (err) {
1375bebb993Sopenharmony_ci      console.error("Fs_Copy_Test003 failed with invalid param: " + err.message + ", error code: " + err.code);
1385bebb993Sopenharmony_ci      expect(true).assertTrue();
1395bebb993Sopenharmony_ci      done();
1405bebb993Sopenharmony_ci    }
1415bebb993Sopenharmony_ci  });
1425bebb993Sopenharmony_ci
1435bebb993Sopenharmony_ci  /*
1445bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test004
1455bebb993Sopenharmony_ci   * @tc.desc:test fs.copy dir to itself
1465bebb993Sopenharmony_ci   * @tc.type: FUNC
1475bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
1485bebb993Sopenharmony_ci   */
1495bebb993Sopenharmony_ci  it("Fs_Copy_Test004", 0, async function (done) {
1505bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test004 start.');
1515bebb993Sopenharmony_ci    try {
1525bebb993Sopenharmony_ci      fs.mkdirSync(srcDirPathLocal);
1535bebb993Sopenharmony_ci      fs.mkdirSync(dstDirPathLocal);
1545bebb993Sopenharmony_ci      await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => {
1555bebb993Sopenharmony_ci        if (err) {
1565bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test004 failed, with error message: " + err.message + ", error code: " + err.code);
1575bebb993Sopenharmony_ci          expect().assertFail();
1585bebb993Sopenharmony_ci        } else {
1595bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test004 success. ");
1605bebb993Sopenharmony_ci          expect(true).assertTrue();
1615bebb993Sopenharmony_ci        }
1625bebb993Sopenharmony_ci        done();
1635bebb993Sopenharmony_ci      })
1645bebb993Sopenharmony_ci    } catch (err) {
1655bebb993Sopenharmony_ci      console.error("Fs_Copy_Test004 failed with invalid param: " + err.message + ", error code: " + err.code);
1665bebb993Sopenharmony_ci      expect().assertFail();
1675bebb993Sopenharmony_ci      done();
1685bebb993Sopenharmony_ci    }
1695bebb993Sopenharmony_ci  });
1705bebb993Sopenharmony_ci
1715bebb993Sopenharmony_ci  /*
1725bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test005
1735bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, copy file, src isn't exist
1745bebb993Sopenharmony_ci   * @tc.type: FUNC
1755bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
1765bebb993Sopenharmony_ci   */
1775bebb993Sopenharmony_ci  it("Fs_Copy_Test005", 0, async function (done) {
1785bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test005 start.');
1795bebb993Sopenharmony_ci    try {
1805bebb993Sopenharmony_ci      fs.rmdirSync(srcDirPathLocal);
1815bebb993Sopenharmony_ci      await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => {
1825bebb993Sopenharmony_ci        if (err) {
1835bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test005 failed, with error message: " + err.message + ", error code: " + err.code);
1845bebb993Sopenharmony_ci          expect(true).assertTrue();
1855bebb993Sopenharmony_ci        } else {
1865bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test005 success. ");
1875bebb993Sopenharmony_ci          expect().assertFail();
1885bebb993Sopenharmony_ci        }
1895bebb993Sopenharmony_ci        done();
1905bebb993Sopenharmony_ci      })
1915bebb993Sopenharmony_ci    } catch (err) {
1925bebb993Sopenharmony_ci      console.error("Fs_Copy_Test005 failed with invalid param: " + err.message + ", error code: " + err.code);
1935bebb993Sopenharmony_ci      expect().assertFail();
1945bebb993Sopenharmony_ci      done();
1955bebb993Sopenharmony_ci    } finally {
1965bebb993Sopenharmony_ci      fs.rmdirSync(dstDirPathLocal);
1975bebb993Sopenharmony_ci    }
1985bebb993Sopenharmony_ci  });
1995bebb993Sopenharmony_ci
2005bebb993Sopenharmony_ci  /*
2015bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test006
2025bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, copy file to file
2035bebb993Sopenharmony_ci   * @tc.type: FUNC
2045bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
2055bebb993Sopenharmony_ci   */
2065bebb993Sopenharmony_ci  it("Fs_Copy_Test006", 0, async function (done) {
2075bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test006 start.');
2085bebb993Sopenharmony_ci    try {
2095bebb993Sopenharmony_ci      fs.mkdirSync(srcDirPathLocal);
2105bebb993Sopenharmony_ci      fs.mkdirSync(dstDirPathLocal);
2115bebb993Sopenharmony_ci      let srcFile = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
2125bebb993Sopenharmony_ci      fs.writeSync(srcFile.fd, 'ttttttttttttt');
2135bebb993Sopenharmony_ci      fs.closeSync(srcFile);
2145bebb993Sopenharmony_ci      let dstFile = fs.openSync(dstFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
2155bebb993Sopenharmony_ci      fs.closeSync(dstFile);
2165bebb993Sopenharmony_ci      await fs.copy(srcFileUriLocal, dstFileUriLocal, (err) => {
2175bebb993Sopenharmony_ci        if (err) {
2185bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test006 failed, with error message: " + err.message + ", error code: " + err.code);
2195bebb993Sopenharmony_ci          expect().assertFail();
2205bebb993Sopenharmony_ci        } else {
2215bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test006 success. ");
2225bebb993Sopenharmony_ci          expect(true).assertTrue();
2235bebb993Sopenharmony_ci        }
2245bebb993Sopenharmony_ci        done();
2255bebb993Sopenharmony_ci      })
2265bebb993Sopenharmony_ci    } catch (err) {
2275bebb993Sopenharmony_ci      console.error("Fs_Copy_Test006 failed with invalid param: " + err.message + ", error code: " + err.code);
2285bebb993Sopenharmony_ci      expect().assertFail();
2295bebb993Sopenharmony_ci      done();
2305bebb993Sopenharmony_ci    }
2315bebb993Sopenharmony_ci  });
2325bebb993Sopenharmony_ci
2335bebb993Sopenharmony_ci  /*
2345bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test007
2355bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, copy file to dir
2365bebb993Sopenharmony_ci   * @tc.type: FUNC
2375bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
2385bebb993Sopenharmony_ci   */
2395bebb993Sopenharmony_ci  it("Fs_Copy_Test007", 0, async function (done) {
2405bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test007 start.');
2415bebb993Sopenharmony_ci    try {
2425bebb993Sopenharmony_ci      let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
2435bebb993Sopenharmony_ci      fs.writeSync(file.fd, 'ttttttttttttt');
2445bebb993Sopenharmony_ci      fs.closeSync(file.fd);
2455bebb993Sopenharmony_ci      await fs.copy(srcFileUriLocal, dstDirUriLocal, (err) => {
2465bebb993Sopenharmony_ci        if (err) {
2475bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test007 failed, with error message: " + err.message + ", error code: " + err.code);
2485bebb993Sopenharmony_ci          expect(true).assertTrue();
2495bebb993Sopenharmony_ci        } else {
2505bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test007 success. ");
2515bebb993Sopenharmony_ci          expect().assertFail();
2525bebb993Sopenharmony_ci        }
2535bebb993Sopenharmony_ci        done();
2545bebb993Sopenharmony_ci      })
2555bebb993Sopenharmony_ci    } catch (err) {
2565bebb993Sopenharmony_ci      console.error("Fs_Copy_Test007 failed with invalid param: " + err.message + ", error code: " + err.code);
2575bebb993Sopenharmony_ci      expect().assertFail();
2585bebb993Sopenharmony_ci      done();
2595bebb993Sopenharmony_ci    }
2605bebb993Sopenharmony_ci  });
2615bebb993Sopenharmony_ci
2625bebb993Sopenharmony_ci  /*
2635bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test008
2645bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, copy dir to dir
2655bebb993Sopenharmony_ci   * @tc.type: FUNC
2665bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
2675bebb993Sopenharmony_ci   */
2685bebb993Sopenharmony_ci  it("Fs_Copy_Test008", 0, async function (done) {
2695bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test008 start.');
2705bebb993Sopenharmony_ci    try {
2715bebb993Sopenharmony_ci      await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => {
2725bebb993Sopenharmony_ci        if (err) {
2735bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test008 failed, with error message: " + err.message + ", error code: " + err.code);
2745bebb993Sopenharmony_ci          expect().assertFail();
2755bebb993Sopenharmony_ci        } else {
2765bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test008 success. ");
2775bebb993Sopenharmony_ci          expect(true).assertTrue();
2785bebb993Sopenharmony_ci        }
2795bebb993Sopenharmony_ci        done();
2805bebb993Sopenharmony_ci      })
2815bebb993Sopenharmony_ci    } catch (err) {
2825bebb993Sopenharmony_ci      console.error("Fs_Copy_Test008 failed with invalid param: " + err.message + ", error code: " + err.code);
2835bebb993Sopenharmony_ci      expect().assertFail();
2845bebb993Sopenharmony_ci      done();
2855bebb993Sopenharmony_ci    } finally {
2865bebb993Sopenharmony_ci      fs.rmdirSync(srcDirPathLocal);
2875bebb993Sopenharmony_ci      fs.rmdirSync(dstDirPathLocal);
2885bebb993Sopenharmony_ci    }
2895bebb993Sopenharmony_ci  });
2905bebb993Sopenharmony_ci
2915bebb993Sopenharmony_ci  /*
2925bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test009
2935bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, copy file and write the contents but dest dir isn't exist
2945bebb993Sopenharmony_ci   * @tc.type: FUNC
2955bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
2965bebb993Sopenharmony_ci   */
2975bebb993Sopenharmony_ci  it("Fs_Copy_Test009", 0, async function (done) {
2985bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test009 start.');
2995bebb993Sopenharmony_ci    try {
3005bebb993Sopenharmony_ci      fs.mkdirSync(srcDirPathLocal);
3015bebb993Sopenharmony_ci      let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
3025bebb993Sopenharmony_ci      fs.writeSync(file.fd, 'ttttttttttttt');
3035bebb993Sopenharmony_ci      fs.closeSync(file);
3045bebb993Sopenharmony_ci      await fs.copy(srcFileUriLocal, dstFileUriLocal, (err) => {
3055bebb993Sopenharmony_ci        if (err) {
3065bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test009 failed, with error message: " + err.message + ", error code: " + err.code);
3075bebb993Sopenharmony_ci          expect(true).assertTrue();
3085bebb993Sopenharmony_ci        } else {
3095bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test009 success. ");
3105bebb993Sopenharmony_ci          expect().assertFail();
3115bebb993Sopenharmony_ci        }
3125bebb993Sopenharmony_ci        done();
3135bebb993Sopenharmony_ci      })
3145bebb993Sopenharmony_ci    } catch (err) {
3155bebb993Sopenharmony_ci      console.error("Fs_Copy_Test009 failed with invalid param: " + err.message + ", error code: " + err.code);
3165bebb993Sopenharmony_ci      expect(true).assertTrue();
3175bebb993Sopenharmony_ci      done();
3185bebb993Sopenharmony_ci    } finally {
3195bebb993Sopenharmony_ci      fs.rmdirSync(srcDirPathLocal);
3205bebb993Sopenharmony_ci    }
3215bebb993Sopenharmony_ci  });
3225bebb993Sopenharmony_ci
3235bebb993Sopenharmony_ci  /*
3245bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test010
3255bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, copy dir and file in the src path
3265bebb993Sopenharmony_ci   * @tc.type: FUNC
3275bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
3285bebb993Sopenharmony_ci   */
3295bebb993Sopenharmony_ci  it("Fs_Copy_Test010", 0, async function (done) {
3305bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test010 start.');
3315bebb993Sopenharmony_ci    try {
3325bebb993Sopenharmony_ci      fs.mkdirSync(srcDirPathLocal);
3335bebb993Sopenharmony_ci      fs.mkdirSync(dstDirPathLocal);
3345bebb993Sopenharmony_ci      let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
3355bebb993Sopenharmony_ci      fs.writeSync(file.fd, 'ttttttttttttt');
3365bebb993Sopenharmony_ci      fs.closeSync(file);
3375bebb993Sopenharmony_ci      await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => {
3385bebb993Sopenharmony_ci        if (err) {
3395bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test010 failed, with error message: " + err.message + ", error code: " + err.code);
3405bebb993Sopenharmony_ci          expect().assertFail();
3415bebb993Sopenharmony_ci        } else {
3425bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test010 success. ");
3435bebb993Sopenharmony_ci          expect(true).assertTrue();
3445bebb993Sopenharmony_ci        }
3455bebb993Sopenharmony_ci        done();
3465bebb993Sopenharmony_ci      })
3475bebb993Sopenharmony_ci    } catch (err) {
3485bebb993Sopenharmony_ci      console.error("Fs_Copy_Test010 failed with invalid param: " + err.message + ", error code: " + err.code);
3495bebb993Sopenharmony_ci      expect().assertFail();
3505bebb993Sopenharmony_ci      done();
3515bebb993Sopenharmony_ci    }
3525bebb993Sopenharmony_ci  });
3535bebb993Sopenharmony_ci
3545bebb993Sopenharmony_ci  /*
3555bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test011
3565bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, copy file to file with listener
3575bebb993Sopenharmony_ci   * @tc.type: FUNC
3585bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
3595bebb993Sopenharmony_ci   */
3605bebb993Sopenharmony_ci  it("Fs_Copy_Test011", 0, async function (done) {
3615bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test011 start.');
3625bebb993Sopenharmony_ci    try {
3635bebb993Sopenharmony_ci      let flag = false;
3645bebb993Sopenharmony_ci      let progressListener = (progress) => {
3655bebb993Sopenharmony_ci        flag = true;
3665bebb993Sopenharmony_ci        console.info("Fs_Copy_Test011 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize +
3675bebb993Sopenharmony_ci            " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%");
3685bebb993Sopenharmony_ci      };
3695bebb993Sopenharmony_ci      let options = {
3705bebb993Sopenharmony_ci        "progressListener": progressListener
3715bebb993Sopenharmony_ci      }
3725bebb993Sopenharmony_ci      let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
3735bebb993Sopenharmony_ci      fs.writeSync(file.fd, 'ttttttttttttt');
3745bebb993Sopenharmony_ci      fs.closeSync(file);
3755bebb993Sopenharmony_ci      await fs.copy(srcFileUriLocal, dstFileUriLocal, options, (err) => {
3765bebb993Sopenharmony_ci        if (err) {
3775bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test011 failed, with error message: " + err.message + ", error code: " + err.code);
3785bebb993Sopenharmony_ci          expect().assertFail();
3795bebb993Sopenharmony_ci        } else {
3805bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test011 success. ");
3815bebb993Sopenharmony_ci          expect(true).assertTrue();
3825bebb993Sopenharmony_ci        }
3835bebb993Sopenharmony_ci        done();
3845bebb993Sopenharmony_ci      })
3855bebb993Sopenharmony_ci      setTimeout(function () {
3865bebb993Sopenharmony_ci        if (!flag) {
3875bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test013 progressListener error. ");
3885bebb993Sopenharmony_ci          expect().assertFail();
3895bebb993Sopenharmony_ci          done();
3905bebb993Sopenharmony_ci          return;
3915bebb993Sopenharmony_ci        }
3925bebb993Sopenharmony_ci        expect(true).assertTrue();
3935bebb993Sopenharmony_ci        done();
3945bebb993Sopenharmony_ci      }, 100);
3955bebb993Sopenharmony_ci    } catch (err) {
3965bebb993Sopenharmony_ci      console.error("Fs_Copy_Test011 failed with invalid param: " + err.message + ", error code: " + err.code);
3975bebb993Sopenharmony_ci      expect().assertFail();
3985bebb993Sopenharmony_ci      done();
3995bebb993Sopenharmony_ci    }
4005bebb993Sopenharmony_ci  });
4015bebb993Sopenharmony_ci
4025bebb993Sopenharmony_ci  /*
4035bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test012
4045bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, copy dir to dir with listener
4055bebb993Sopenharmony_ci   * @tc.type: FUNC
4065bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
4075bebb993Sopenharmony_ci   */
4085bebb993Sopenharmony_ci  it("Fs_Copy_Test012", 0, async function (done) {
4095bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test012 start.');
4105bebb993Sopenharmony_ci    try {
4115bebb993Sopenharmony_ci      let flag = false;
4125bebb993Sopenharmony_ci      let progressListener = (progress) => {
4135bebb993Sopenharmony_ci        flag = true;
4145bebb993Sopenharmony_ci        console.info("Fs_Copy_Test012 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize +
4155bebb993Sopenharmony_ci            " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%");
4165bebb993Sopenharmony_ci      };
4175bebb993Sopenharmony_ci      let options = {
4185bebb993Sopenharmony_ci        "progressListener": progressListener
4195bebb993Sopenharmony_ci      }
4205bebb993Sopenharmony_ci      await fs.copy(srcDirUriLocal, dstDirUriLocal, options, (err) => {
4215bebb993Sopenharmony_ci        if (err) {
4225bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test012 failed, with error message: " + err.message + ", error code: " + err.code);
4235bebb993Sopenharmony_ci          expect().assertFail();
4245bebb993Sopenharmony_ci        } else {
4255bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test012 success. ");
4265bebb993Sopenharmony_ci        }
4275bebb993Sopenharmony_ci      })
4285bebb993Sopenharmony_ci      setTimeout(function () {
4295bebb993Sopenharmony_ci        if (!flag) {
4305bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test013 progressListener error. ");
4315bebb993Sopenharmony_ci          expect().assertFail();
4325bebb993Sopenharmony_ci          done();
4335bebb993Sopenharmony_ci          return;
4345bebb993Sopenharmony_ci        }
4355bebb993Sopenharmony_ci        expect(true).assertTrue();
4365bebb993Sopenharmony_ci        done();
4375bebb993Sopenharmony_ci      }, 100);
4385bebb993Sopenharmony_ci    } catch (err) {
4395bebb993Sopenharmony_ci      console.error("Fs_Copy_Test012 failed with invalid param: " + err.message + ", error code: " + err.code);
4405bebb993Sopenharmony_ci      expect().assertFail();
4415bebb993Sopenharmony_ci      done();
4425bebb993Sopenharmony_ci    }
4435bebb993Sopenharmony_ci  });
4445bebb993Sopenharmony_ci
4455bebb993Sopenharmony_ci  /*
4465bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test013
4475bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, copy file to file with listener promise
4485bebb993Sopenharmony_ci   * @tc.type: FUNC
4495bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
4505bebb993Sopenharmony_ci   */
4515bebb993Sopenharmony_ci  it("Fs_Copy_Test013", 0, async function (done) {
4525bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test013 start.');
4535bebb993Sopenharmony_ci    try {
4545bebb993Sopenharmony_ci      let flag = false;
4555bebb993Sopenharmony_ci      let progressListener = (progress) => {
4565bebb993Sopenharmony_ci        flag = true;
4575bebb993Sopenharmony_ci        console.info("Fs_Copy_Test013 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize +
4585bebb993Sopenharmony_ci            " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%");
4595bebb993Sopenharmony_ci      };
4605bebb993Sopenharmony_ci      let options = {
4615bebb993Sopenharmony_ci        "progressListener": progressListener
4625bebb993Sopenharmony_ci      }
4635bebb993Sopenharmony_ci      let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
4645bebb993Sopenharmony_ci      fs.writeSync(file.fd, 'ttttttttttttt');
4655bebb993Sopenharmony_ci      fs.closeSync(file);
4665bebb993Sopenharmony_ci      await fs.copy(srcFileUriLocal, dstFileUriLocal, options).then((err) => {
4675bebb993Sopenharmony_ci        if (err) {
4685bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test013 failed, with error message: " + err.message + ", error code: " + err.code);
4695bebb993Sopenharmony_ci          expect().assertFail();
4705bebb993Sopenharmony_ci        } else {
4715bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test013 success. ");
4725bebb993Sopenharmony_ci        }
4735bebb993Sopenharmony_ci      })
4745bebb993Sopenharmony_ci      setTimeout(function () {
4755bebb993Sopenharmony_ci        if (!flag) {
4765bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test013 progressListener error. ");
4775bebb993Sopenharmony_ci          expect().assertFail();
4785bebb993Sopenharmony_ci          done();
4795bebb993Sopenharmony_ci          return;
4805bebb993Sopenharmony_ci        }
4815bebb993Sopenharmony_ci        expect(true).assertTrue();
4825bebb993Sopenharmony_ci        done();
4835bebb993Sopenharmony_ci      }, 100);
4845bebb993Sopenharmony_ci    } catch (err) {
4855bebb993Sopenharmony_ci      console.error("Fs_Copy_Test013 failed with invalid param: " + err.message + ", error code: " + err.code);
4865bebb993Sopenharmony_ci      expect().assertFail();
4875bebb993Sopenharmony_ci      done();
4885bebb993Sopenharmony_ci    }
4895bebb993Sopenharmony_ci  });
4905bebb993Sopenharmony_ci
4915bebb993Sopenharmony_ci  /*
4925bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test014
4935bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, copy dir to dir with listener promise
4945bebb993Sopenharmony_ci   * @tc.type: FUNC
4955bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
4965bebb993Sopenharmony_ci   */
4975bebb993Sopenharmony_ci  it("Fs_Copy_Test014", 0, async function (done) {
4985bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test014 start.');
4995bebb993Sopenharmony_ci    try {
5005bebb993Sopenharmony_ci      let flag = false;
5015bebb993Sopenharmony_ci      let progressListener = (progress) => {
5025bebb993Sopenharmony_ci        flag = true;
5035bebb993Sopenharmony_ci        console.info("Fs_Copy_Test014 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize +
5045bebb993Sopenharmony_ci            " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%");
5055bebb993Sopenharmony_ci      };
5065bebb993Sopenharmony_ci      let options = {
5075bebb993Sopenharmony_ci        "progressListener": progressListener
5085bebb993Sopenharmony_ci      }
5095bebb993Sopenharmony_ci      await fs.copy(srcDirUriLocal, dstDirUriLocal, options).then((err) => {
5105bebb993Sopenharmony_ci        if (err) {
5115bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test014 failed, with error message: " + err.message + ", error code: " + err.code);
5125bebb993Sopenharmony_ci          expect().assertFail();
5135bebb993Sopenharmony_ci          done();
5145bebb993Sopenharmony_ci        } else {
5155bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test014 success. ");
5165bebb993Sopenharmony_ci        }
5175bebb993Sopenharmony_ci        setTimeout(function () {
5185bebb993Sopenharmony_ci          if (!flag) {
5195bebb993Sopenharmony_ci            console.info(TAG, "Fs_Copy_Test013 progressListener error. ");
5205bebb993Sopenharmony_ci            expect().assertFail();
5215bebb993Sopenharmony_ci            done();
5225bebb993Sopenharmony_ci            return;
5235bebb993Sopenharmony_ci          }
5245bebb993Sopenharmony_ci          expect(true).assertTrue();
5255bebb993Sopenharmony_ci          done();
5265bebb993Sopenharmony_ci        }, 100);
5275bebb993Sopenharmony_ci      })
5285bebb993Sopenharmony_ci    } catch (err) {
5295bebb993Sopenharmony_ci      console.error("Fs_Copy_Test014 failed with invalid param: " + err.message + ", error code: " + err.code);
5305bebb993Sopenharmony_ci      expect().assertFail();
5315bebb993Sopenharmony_ci      done();
5325bebb993Sopenharmony_ci    }
5335bebb993Sopenharmony_ci  });
5345bebb993Sopenharmony_ci
5355bebb993Sopenharmony_ci  /*
5365bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test015
5375bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, copy file 2 times
5385bebb993Sopenharmony_ci   * @tc.type: FUNC
5395bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
5405bebb993Sopenharmony_ci   */
5415bebb993Sopenharmony_ci  it("Fs_Copy_Test015", 0, async function (done) {
5425bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test015 start.');
5435bebb993Sopenharmony_ci    try {
5445bebb993Sopenharmony_ci      let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
5455bebb993Sopenharmony_ci      fs.writeSync(file.fd, 'ttttttttttttt');
5465bebb993Sopenharmony_ci      fs.closeSync(file);
5475bebb993Sopenharmony_ci      await fs.copy(srcFileUriLocal, dstFileUriLocal, (err) => {
5485bebb993Sopenharmony_ci        if (err) {
5495bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test015_first failed, with error message: " + err.message + ", error code: " + err.code);
5505bebb993Sopenharmony_ci          expect().assertFail();
5515bebb993Sopenharmony_ci          done();
5525bebb993Sopenharmony_ci        } else {
5535bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test015_first success. ");
5545bebb993Sopenharmony_ci        }
5555bebb993Sopenharmony_ci      })
5565bebb993Sopenharmony_ci
5575bebb993Sopenharmony_ci      await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => {
5585bebb993Sopenharmony_ci        if (err) {
5595bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test015_second failed, with error message: " + err.message + ", error code: " + err.code);
5605bebb993Sopenharmony_ci          expect().assertFail();
5615bebb993Sopenharmony_ci        } else {
5625bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test015_second success. ");
5635bebb993Sopenharmony_ci          expect(true).assertTrue();
5645bebb993Sopenharmony_ci          fs.rmdirSync(srcDirPathLocal);
5655bebb993Sopenharmony_ci          fs.rmdirSync(dstDirPathLocal);
5665bebb993Sopenharmony_ci        }
5675bebb993Sopenharmony_ci        done();
5685bebb993Sopenharmony_ci      })
5695bebb993Sopenharmony_ci    } catch (err) {
5705bebb993Sopenharmony_ci      console.error("Fs_Copy_Test015 failed with invalid param: " + err.message + ", error code: " + err.code);
5715bebb993Sopenharmony_ci      expect().assertFail();
5725bebb993Sopenharmony_ci      done();
5735bebb993Sopenharmony_ci    }
5745bebb993Sopenharmony_ci  });
5755bebb993Sopenharmony_ci
5765bebb993Sopenharmony_ci  /*
5775bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test016
5785bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, copy empty file
5795bebb993Sopenharmony_ci   * @tc.type: FUNC
5805bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
5815bebb993Sopenharmony_ci   */
5825bebb993Sopenharmony_ci  it("Fs_Copy_Test016", 0, async function (done) {
5835bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test016 start.');
5845bebb993Sopenharmony_ci    try {
5855bebb993Sopenharmony_ci      if (fs.accessSync(srcFilePathLocal)) {
5865bebb993Sopenharmony_ci        fs.unlinkSync(srcFilePathLocal);
5875bebb993Sopenharmony_ci      }
5885bebb993Sopenharmony_ci      fs.mkdirSync(srcDirPathLocal);
5895bebb993Sopenharmony_ci      fs.mkdirSync(dstDirPathLocal);
5905bebb993Sopenharmony_ci      let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
5915bebb993Sopenharmony_ci      fs.closeSync(file);
5925bebb993Sopenharmony_ci      await fs.copy(srcFileUriLocal, dstFileUriLocal, (err) => {
5935bebb993Sopenharmony_ci        if (err) {
5945bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test016 failed, with error message: " + err.message + ", error code: " + err.code);
5955bebb993Sopenharmony_ci          expect().assertFail();
5965bebb993Sopenharmony_ci        } else {
5975bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test016 success. ");
5985bebb993Sopenharmony_ci          expect(true).assertTrue();
5995bebb993Sopenharmony_ci        }
6005bebb993Sopenharmony_ci        done();
6015bebb993Sopenharmony_ci      })
6025bebb993Sopenharmony_ci    } catch (err) {
6035bebb993Sopenharmony_ci      console.error("Fs_Copy_Test016 failed with invalid param: " + err.message + ", error code: " + err.code);
6045bebb993Sopenharmony_ci      expect().assertFail();
6055bebb993Sopenharmony_ci      done();
6065bebb993Sopenharmony_ci    }
6075bebb993Sopenharmony_ci  });
6085bebb993Sopenharmony_ci
6095bebb993Sopenharmony_ci  /*
6105bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test017
6115bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, copy empty dir
6125bebb993Sopenharmony_ci   * @tc.type: FUNC
6135bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
6145bebb993Sopenharmony_ci   */
6155bebb993Sopenharmony_ci  it("Fs_Copy_Test017", 0, async function (done) {
6165bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test017 start.');
6175bebb993Sopenharmony_ci    try {
6185bebb993Sopenharmony_ci      if (fs.accessSync(srcFilePathLocal)) {
6195bebb993Sopenharmony_ci        fs.unlinkSync(srcFilePathLocal);
6205bebb993Sopenharmony_ci      }
6215bebb993Sopenharmony_ci      await fs.copy(srcDirUriLocal, dstDirUriLocal, (err) => {
6225bebb993Sopenharmony_ci        if (err) {
6235bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test017 failed, with error message: " + err.message + ", error code: " + err.code);
6245bebb993Sopenharmony_ci          expect().assertFail();
6255bebb993Sopenharmony_ci        } else {
6265bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test017 success. ");
6275bebb993Sopenharmony_ci          expect(true).assertTrue();
6285bebb993Sopenharmony_ci        }
6295bebb993Sopenharmony_ci        done();
6305bebb993Sopenharmony_ci      })
6315bebb993Sopenharmony_ci    } catch (err) {
6325bebb993Sopenharmony_ci      console.error("Fs_Copy_Test017 failed with invalid param: " + err.message + ", error code: " + err.code);
6335bebb993Sopenharmony_ci      expect().assertFail();
6345bebb993Sopenharmony_ci      done();
6355bebb993Sopenharmony_ci    }
6365bebb993Sopenharmony_ci  });
6375bebb993Sopenharmony_ci
6385bebb993Sopenharmony_ci  /*
6395bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test018
6405bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, copy empty dir
6415bebb993Sopenharmony_ci   * @tc.type: FUNC
6425bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
6435bebb993Sopenharmony_ci   */
6445bebb993Sopenharmony_ci  it("Fs_Copy_Test018", 0, async function (done) {
6455bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test017 start.');
6465bebb993Sopenharmony_ci    try {
6475bebb993Sopenharmony_ci      let flag = false;
6485bebb993Sopenharmony_ci      let progressListener = (progress) => {
6495bebb993Sopenharmony_ci        flag = true;
6505bebb993Sopenharmony_ci        console.info("Fs_Copy_Test018 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize);
6515bebb993Sopenharmony_ci      };
6525bebb993Sopenharmony_ci      let options = {
6535bebb993Sopenharmony_ci        "progressListener": progressListener
6545bebb993Sopenharmony_ci      }
6555bebb993Sopenharmony_ci      if (fs.accessSync(srcFilePathLocal)) {
6565bebb993Sopenharmony_ci        fs.unlinkSync(srcFilePathLocal);
6575bebb993Sopenharmony_ci      }
6585bebb993Sopenharmony_ci      await fs.copy(srcDirUriLocal, dstDirUriLocal, options, (err) => {
6595bebb993Sopenharmony_ci        if (err) {
6605bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test018 failed, with error message: " + err.message + ", error code: " + err.code);
6615bebb993Sopenharmony_ci          expect().assertFail();
6625bebb993Sopenharmony_ci          done();
6635bebb993Sopenharmony_ci        } else {
6645bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test018 success. ");
6655bebb993Sopenharmony_ci        }
6665bebb993Sopenharmony_ci      })
6675bebb993Sopenharmony_ci      setTimeout(function () {
6685bebb993Sopenharmony_ci        if (!flag) {
6695bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test013 progressListener error. ");
6705bebb993Sopenharmony_ci          expect().assertFail();
6715bebb993Sopenharmony_ci          done();
6725bebb993Sopenharmony_ci          return;
6735bebb993Sopenharmony_ci        }
6745bebb993Sopenharmony_ci        expect(true).assertTrue();
6755bebb993Sopenharmony_ci        done();
6765bebb993Sopenharmony_ci      }, 100);
6775bebb993Sopenharmony_ci    } catch (err) {
6785bebb993Sopenharmony_ci      console.error("Fs_Copy_Test018 failed with invalid param: " + err.message + ", error code: " + err.code);
6795bebb993Sopenharmony_ci      expect().assertFail();
6805bebb993Sopenharmony_ci      done();
6815bebb993Sopenharmony_ci    }
6825bebb993Sopenharmony_ci  });
6835bebb993Sopenharmony_ci
6845bebb993Sopenharmony_ci  /*
6855bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test019
6865bebb993Sopenharmony_ci   * @tc.desc:test fs.copy file to itself
6875bebb993Sopenharmony_ci   * @tc.type: FUNC
6885bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
6895bebb993Sopenharmony_ci   */
6905bebb993Sopenharmony_ci  it("Fs_Copy_Test019", 0, async function (done) {
6915bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test019 start.');
6925bebb993Sopenharmony_ci    try {
6935bebb993Sopenharmony_ci      await fs.copy(srcFileUriLocal, srcFileUriLocal, (err) => {
6945bebb993Sopenharmony_ci        if (err) {
6955bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test019 failed, with error message: " + err.message + ", error code: " + err.code);
6965bebb993Sopenharmony_ci          expect(true).assertTrue();
6975bebb993Sopenharmony_ci        } else {
6985bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test019 success. ");
6995bebb993Sopenharmony_ci          expect().assertFail();
7005bebb993Sopenharmony_ci        }
7015bebb993Sopenharmony_ci        done();
7025bebb993Sopenharmony_ci      })
7035bebb993Sopenharmony_ci    } catch (err) {
7045bebb993Sopenharmony_ci      console.error("Fs_Copy_Test019 failed with invalid param: " + err.message + ", error code: " + err.code);
7055bebb993Sopenharmony_ci      expect(false).assertTrue();
7065bebb993Sopenharmony_ci      done();
7075bebb993Sopenharmony_ci    }
7085bebb993Sopenharmony_ci  });
7095bebb993Sopenharmony_ci
7105bebb993Sopenharmony_ci  /*
7115bebb993Sopenharmony_ci    * @tc.name:Fs_Copy_Test020
7125bebb993Sopenharmony_ci    * @tc.desc:test fs.copy, copy muilt empty dir
7135bebb993Sopenharmony_ci    * @tc.type: FUNC
7145bebb993Sopenharmony_ci    * @tc.require: #I8UV2F
7155bebb993Sopenharmony_ci    */
7165bebb993Sopenharmony_ci  it("Fs_Copy_Test020", 0, async function (done) {
7175bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test020 start.');
7185bebb993Sopenharmony_ci    try {
7195bebb993Sopenharmony_ci      fs.mkdirSync(srcDirPathLocal+"/test1");
7205bebb993Sopenharmony_ci      fs.mkdirSync(srcDirPathLocal+"/test2");
7215bebb993Sopenharmony_ci      let progressListener = (progress) => {
7225bebb993Sopenharmony_ci        console.info("Fs_Copy_Test020 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize);
7235bebb993Sopenharmony_ci      };
7245bebb993Sopenharmony_ci      let options = {
7255bebb993Sopenharmony_ci        "progressListener": progressListener
7265bebb993Sopenharmony_ci      }
7275bebb993Sopenharmony_ci      await fs.copy(srcDirUriLocal, dstDirUriLocal, options, (err) => {
7285bebb993Sopenharmony_ci        if (err) {
7295bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test020 failed, with error message: " + err.message + ", error code: " + err.code);
7305bebb993Sopenharmony_ci          expect().assertFail();
7315bebb993Sopenharmony_ci        } else {
7325bebb993Sopenharmony_ci          if (isDirectory(dstDirPathLocal + "/src/test1") && isDirectory(dstDirPathLocal + "/src/test2")) {
7335bebb993Sopenharmony_ci            console.info(TAG, "Fs_Copy_Test020 success. ");
7345bebb993Sopenharmony_ci            expect(true).assertTrue();
7355bebb993Sopenharmony_ci            done();
7365bebb993Sopenharmony_ci            return;
7375bebb993Sopenharmony_ci          }
7385bebb993Sopenharmony_ci          expect().assertFail();
7395bebb993Sopenharmony_ci        }
7405bebb993Sopenharmony_ci        done();
7415bebb993Sopenharmony_ci      })
7425bebb993Sopenharmony_ci    } catch (err) {
7435bebb993Sopenharmony_ci      console.error("Fs_Copy_Test020 failed with invalid param: " + err.message + ", error code: " + err.code);
7445bebb993Sopenharmony_ci      expect().assertFail();
7455bebb993Sopenharmony_ci      done();
7465bebb993Sopenharmony_ci    }
7475bebb993Sopenharmony_ci  });
7485bebb993Sopenharmony_ci
7495bebb993Sopenharmony_ci  /*
7505bebb993Sopenharmony_ci  * @tc.name:Fs_Copy_Test021
7515bebb993Sopenharmony_ci  * @tc.desc:test fs.copy, copy muilt dir contain files
7525bebb993Sopenharmony_ci  * @tc.type: FUNC
7535bebb993Sopenharmony_ci  * @tc.require: #I8UV2F
7545bebb993Sopenharmony_ci  */
7555bebb993Sopenharmony_ci  it("Fs_Copy_Test021", 0, async function (done) {
7565bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test021 start.');
7575bebb993Sopenharmony_ci    try {
7585bebb993Sopenharmony_ci      let file1 = fs.openSync(muiltDirLocal + "/test1.txt", fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
7595bebb993Sopenharmony_ci      fs.writeSync(file1.fd, "ttttttttttttt");
7605bebb993Sopenharmony_ci      fs.closeSync(file1);
7615bebb993Sopenharmony_ci      let file2 = fs.openSync(muiltDirLocal + "/test2.txt", fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
7625bebb993Sopenharmony_ci      fs.writeSync(file2.fd, "ttttttttttttt");
7635bebb993Sopenharmony_ci      fs.closeSync(file2);
7645bebb993Sopenharmony_ci      let progressListener = (progress) => {
7655bebb993Sopenharmony_ci        console.info("Fs_Copy_Test021 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize +
7665bebb993Sopenharmony_ci            " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%");
7675bebb993Sopenharmony_ci      };
7685bebb993Sopenharmony_ci      let options = {
7695bebb993Sopenharmony_ci        "progressListener": progressListener
7705bebb993Sopenharmony_ci      }
7715bebb993Sopenharmony_ci      await fs.copy(srcDirUriLocal, dstDirUriLocal, options, (err) => {
7725bebb993Sopenharmony_ci        if (err) {
7735bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test021 failed, with error message: " + err.message + ", error code: " + err.code);
7745bebb993Sopenharmony_ci          expect().assertFail();
7755bebb993Sopenharmony_ci        } else {
7765bebb993Sopenharmony_ci          if (fs.accessSync(dstDirPathLocal +"/src/test1/test1.txt") && fs.accessSync(dstDirPathLocal + "/src/test1/test2.txt")) {
7775bebb993Sopenharmony_ci            console.info(TAG, "Fs_Copy_Test021 success. ");
7785bebb993Sopenharmony_ci            expect(true).assertTrue();
7795bebb993Sopenharmony_ci            done();
7805bebb993Sopenharmony_ci            return;
7815bebb993Sopenharmony_ci          }
7825bebb993Sopenharmony_ci          expect().assertFail();
7835bebb993Sopenharmony_ci        }
7845bebb993Sopenharmony_ci        done();
7855bebb993Sopenharmony_ci      })
7865bebb993Sopenharmony_ci    } catch (err) {
7875bebb993Sopenharmony_ci      console.error("Fs_Copy_Test021 failed with invalid param: " + err.message + ", error code: " + err.code);
7885bebb993Sopenharmony_ci      expect().assertFail();
7895bebb993Sopenharmony_ci      done();
7905bebb993Sopenharmony_ci    }
7915bebb993Sopenharmony_ci  });
7925bebb993Sopenharmony_ci
7935bebb993Sopenharmony_ci  /*
7945bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test022
7955bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, copy file 10 times
7965bebb993Sopenharmony_ci   * @tc.type: FUNC
7975bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
7985bebb993Sopenharmony_ci   */
7995bebb993Sopenharmony_ci  it("Fs_Copy_Test022", 0, async function (done) {
8005bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test022 start.');
8015bebb993Sopenharmony_ci    try {
8025bebb993Sopenharmony_ci      let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
8035bebb993Sopenharmony_ci      fs.writeSync(file.fd, 'ttttttttttttt');
8045bebb993Sopenharmony_ci      fs.closeSync(file);
8055bebb993Sopenharmony_ci      // execute the copy operation 10 times
8065bebb993Sopenharmony_ci      for (let i = 0; i < 10; i++) {
8075bebb993Sopenharmony_ci        const dstStitchFilePath = `${dstDirUriLocal}/file_${i}.txt`;
8085bebb993Sopenharmony_ci        await fs.copy(srcFileUriLocal, dstStitchFilePath, (err) => {
8095bebb993Sopenharmony_ci          if (err) {
8105bebb993Sopenharmony_ci            console.info(TAG, "Fs_Copy_Test022 failed, with error message: " + err.message + ", error code: " + err.code);
8115bebb993Sopenharmony_ci            expect().assertFail();
8125bebb993Sopenharmony_ci            done();
8135bebb993Sopenharmony_ci          } else {
8145bebb993Sopenharmony_ci            console.info(TAG, "Fs_Copy_Test022 success. ");
8155bebb993Sopenharmony_ci          }
8165bebb993Sopenharmony_ci        })
8175bebb993Sopenharmony_ci      }
8185bebb993Sopenharmony_ci      expect(true).assertTrue();
8195bebb993Sopenharmony_ci      done();
8205bebb993Sopenharmony_ci    } catch (err) {
8215bebb993Sopenharmony_ci      console.error("Fs_Copy_Test022 failed with invalid param: " + err.message + ", error code: " + err.code);
8225bebb993Sopenharmony_ci      expect().assertFail();
8235bebb993Sopenharmony_ci      done();
8245bebb993Sopenharmony_ci    }
8255bebb993Sopenharmony_ci  });
8265bebb993Sopenharmony_ci
8275bebb993Sopenharmony_ci  /*
8285bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test023
8295bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, copy 1KB file
8305bebb993Sopenharmony_ci   * @tc.type: FUNC
8315bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
8325bebb993Sopenharmony_ci   */
8335bebb993Sopenharmony_ci  it("Fs_Copy_Test023", 0, async function (done) {
8345bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test023 start.');
8355bebb993Sopenharmony_ci    try {
8365bebb993Sopenharmony_ci      let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
8375bebb993Sopenharmony_ci      let content = 't'.repeat(1024);
8385bebb993Sopenharmony_ci      fs.writeSync(file.fd, content);
8395bebb993Sopenharmony_ci      fs.closeSync(file);
8405bebb993Sopenharmony_ci      let progressListener = (progress) => {
8415bebb993Sopenharmony_ci        console.info("Fs_Copy_Test023 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize +
8425bebb993Sopenharmony_ci            " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%");
8435bebb993Sopenharmony_ci      };
8445bebb993Sopenharmony_ci      let options = {
8455bebb993Sopenharmony_ci        "progressListener": progressListener
8465bebb993Sopenharmony_ci      }
8475bebb993Sopenharmony_ci      await fs.copy(srcFileUriLocal, dstFileUriLocal, options, (err) => {
8485bebb993Sopenharmony_ci        if (err) {
8495bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test023 failed, with error message: " + err.message + ", error code: " + err.code);
8505bebb993Sopenharmony_ci          expect().assertFail();
8515bebb993Sopenharmony_ci        } else {
8525bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test023 success. ");
8535bebb993Sopenharmony_ci          expect(true).assertTrue();
8545bebb993Sopenharmony_ci        }
8555bebb993Sopenharmony_ci        done();
8565bebb993Sopenharmony_ci      })
8575bebb993Sopenharmony_ci    } catch (err) {
8585bebb993Sopenharmony_ci      console.error("Fs_Copy_Test023 failed with invalid param: " + err.message + ", error code: " + err.code);
8595bebb993Sopenharmony_ci      expect().assertFail();
8605bebb993Sopenharmony_ci      done();
8615bebb993Sopenharmony_ci    }
8625bebb993Sopenharmony_ci  });
8635bebb993Sopenharmony_ci
8645bebb993Sopenharmony_ci  /*
8655bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test024
8665bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, copy 100MB file
8675bebb993Sopenharmony_ci   * @tc.type: FUNC
8685bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
8695bebb993Sopenharmony_ci   */
8705bebb993Sopenharmony_ci  it("Fs_Copy_Test024", 0, async function (done) {
8715bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test024 start.');
8725bebb993Sopenharmony_ci    try {
8735bebb993Sopenharmony_ci      let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
8745bebb993Sopenharmony_ci      let content = 't'.repeat(1024 * 1024 * 100);
8755bebb993Sopenharmony_ci      fs.writeSync(file.fd, content);
8765bebb993Sopenharmony_ci      fs.closeSync(file);
8775bebb993Sopenharmony_ci      let progressListener = (progress) => {
8785bebb993Sopenharmony_ci        console.info("Fs_Copy_Test024 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize +
8795bebb993Sopenharmony_ci            " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%");
8805bebb993Sopenharmony_ci      };
8815bebb993Sopenharmony_ci      let options = {
8825bebb993Sopenharmony_ci        "progressListener": progressListener
8835bebb993Sopenharmony_ci      }
8845bebb993Sopenharmony_ci      await fs.copy(srcFileUriLocal, dstFileUriLocal, options, (err) => {
8855bebb993Sopenharmony_ci        if (err) {
8865bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test024 failed, with error message: " + err.message + ", error code: " + err.code);
8875bebb993Sopenharmony_ci          expect().assertFail();
8885bebb993Sopenharmony_ci        } else {
8895bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test024 success. ");
8905bebb993Sopenharmony_ci          expect(true).assertTrue();
8915bebb993Sopenharmony_ci        }
8925bebb993Sopenharmony_ci        done();
8935bebb993Sopenharmony_ci      })
8945bebb993Sopenharmony_ci    } catch (err) {
8955bebb993Sopenharmony_ci      console.error("Fs_Copy_Test024 failed with invalid param: " + err.message + ", error code: " + err.code);
8965bebb993Sopenharmony_ci      expect().assertFail();
8975bebb993Sopenharmony_ci      done();
8985bebb993Sopenharmony_ci    }
8995bebb993Sopenharmony_ci  });
9005bebb993Sopenharmony_ci
9015bebb993Sopenharmony_ci  /*
9025bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test025
9035bebb993Sopenharmony_ci   * @tc.desc:test fs.copy dir to own directory1
9045bebb993Sopenharmony_ci   * @tc.type: FUNC
9055bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
9065bebb993Sopenharmony_ci   */
9075bebb993Sopenharmony_ci  it("Fs_Copy_Test025", 0, async function (done) {
9085bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test025 start.');
9095bebb993Sopenharmony_ci    try {
9105bebb993Sopenharmony_ci      await fs.copy(srcDirUriLocal, srcDirUriLocal+"/", (err) => {
9115bebb993Sopenharmony_ci        if (err) {
9125bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test025 failed, with error message: " + err.message + ", error code: " + err.code);
9135bebb993Sopenharmony_ci          expect(true).assertTrue();
9145bebb993Sopenharmony_ci        } else {
9155bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test025 success. ");
9165bebb993Sopenharmony_ci          expect().assertFail();
9175bebb993Sopenharmony_ci        }
9185bebb993Sopenharmony_ci        done();
9195bebb993Sopenharmony_ci      })
9205bebb993Sopenharmony_ci    } catch (err) {
9215bebb993Sopenharmony_ci      console.error("Fs_Copy_Test025 failed with invalid param: " + err.message + ", error code: " + err.code);
9225bebb993Sopenharmony_ci      expect().assertFail();
9235bebb993Sopenharmony_ci      done();
9245bebb993Sopenharmony_ci    }
9255bebb993Sopenharmony_ci  });
9265bebb993Sopenharmony_ci
9275bebb993Sopenharmony_ci  /*
9285bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test026
9295bebb993Sopenharmony_ci   * @tc.desc:test fs.copy dir to own directory2
9305bebb993Sopenharmony_ci   * @tc.type: FUNC
9315bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
9325bebb993Sopenharmony_ci   */
9335bebb993Sopenharmony_ci  it("Fs_Copy_Test026", 0, async function (done) {
9345bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test026 start.');
9355bebb993Sopenharmony_ci    try {
9365bebb993Sopenharmony_ci      await fs.copy(srcDirUriLocal+"/", srcDirUriLocal, (err) => {
9375bebb993Sopenharmony_ci        if (err) {
9385bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test026 failed, with error message: " + err.message + ", error code: " + err.code);
9395bebb993Sopenharmony_ci          expect(true).assertTrue();
9405bebb993Sopenharmony_ci        } else {
9415bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test026 success. ");
9425bebb993Sopenharmony_ci          expect().assertFail();
9435bebb993Sopenharmony_ci        }
9445bebb993Sopenharmony_ci        done();
9455bebb993Sopenharmony_ci      })
9465bebb993Sopenharmony_ci    } catch (err) {
9475bebb993Sopenharmony_ci      console.error("Fs_Copy_Test026 failed with invalid param: " + err.message + ", error code: " + err.code);
9485bebb993Sopenharmony_ci      expect().assertFail();
9495bebb993Sopenharmony_ci      done();
9505bebb993Sopenharmony_ci    }
9515bebb993Sopenharmony_ci  });
9525bebb993Sopenharmony_ci
9535bebb993Sopenharmony_ci  /*
9545bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test027
9555bebb993Sopenharmony_ci   * @tc.desc:test fs.copy file wiht no suffix
9565bebb993Sopenharmony_ci   * @tc.type: FUNC
9575bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
9585bebb993Sopenharmony_ci   */
9595bebb993Sopenharmony_ci  it("Fs_Copy_Test027", 0, async function (done) {
9605bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test027 start.');
9615bebb993Sopenharmony_ci    try {
9625bebb993Sopenharmony_ci      let file = fs.openSync(srcNoSuffixFileLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
9635bebb993Sopenharmony_ci      fs.writeSync(file.fd, "ttttttttttttt");
9645bebb993Sopenharmony_ci      fs.closeSync(file);
9655bebb993Sopenharmony_ci      await fs.copy(srcNoSuffixFileUriLocal, dstDirUriLocal, (err) => {
9665bebb993Sopenharmony_ci        if (err) {
9675bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test027 failed, with error message: " + err.message + ", error code: " + err.code);
9685bebb993Sopenharmony_ci          expect(true).assertTrue();
9695bebb993Sopenharmony_ci        } else {
9705bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test027 success. ");
9715bebb993Sopenharmony_ci          expect().assertFail();
9725bebb993Sopenharmony_ci        }
9735bebb993Sopenharmony_ci        done();
9745bebb993Sopenharmony_ci      })
9755bebb993Sopenharmony_ci    } catch (err) {
9765bebb993Sopenharmony_ci      console.error("Fs_Copy_Test027 failed with invalid param: " + err.message + ", error code: " + err.code);
9775bebb993Sopenharmony_ci      expect().assertFail();
9785bebb993Sopenharmony_ci      done();
9795bebb993Sopenharmony_ci    }
9805bebb993Sopenharmony_ci  });
9815bebb993Sopenharmony_ci  /*
9825bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test028
9835bebb993Sopenharmony_ci   * @tc.desc:test fs.copy file with indiscriminate parameter
9845bebb993Sopenharmony_ci   * @tc.type: FUNC
9855bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
9865bebb993Sopenharmony_ci   */
9875bebb993Sopenharmony_ci  it("Fs_Copy_Test028", 0, async function (done) {
9885bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test028 start.');
9895bebb993Sopenharmony_ci    try {
9905bebb993Sopenharmony_ci      let srcPath = pathDir+"/./pppppp";
9915bebb993Sopenharmony_ci      let destPath =pathDir+ "/ttt/pppppp";
9925bebb993Sopenharmony_ci      let srcUriPath = fileuri.getUriFromPath(srcPath);
9935bebb993Sopenharmony_ci      let destUriPath = fileuri.getUriFromPath(destPath);
9945bebb993Sopenharmony_ci      fs.mkdirSync(srcPath);
9955bebb993Sopenharmony_ci      await fs.copy(srcUriPath, destUriPath, (err) => {
9965bebb993Sopenharmony_ci        if (err) {
9975bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test028 failed, with error message: " + err.message + ", error code: " + err.code);
9985bebb993Sopenharmony_ci          expect(true).assertTrue();
9995bebb993Sopenharmony_ci        } else {
10005bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test028 success. ");
10015bebb993Sopenharmony_ci          expect().assertFail();
10025bebb993Sopenharmony_ci        }
10035bebb993Sopenharmony_ci        done();
10045bebb993Sopenharmony_ci      })
10055bebb993Sopenharmony_ci    } catch (err) {
10065bebb993Sopenharmony_ci      console.error("Fs_Copy_Test028 failed with invalid param: " + err.message + ", error code: " + err.code);
10075bebb993Sopenharmony_ci      expect().assertFail();
10085bebb993Sopenharmony_ci      done();
10095bebb993Sopenharmony_ci    }
10105bebb993Sopenharmony_ci  });
10115bebb993Sopenharmony_ci
10125bebb993Sopenharmony_ci  /*
10135bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test029
10145bebb993Sopenharmony_ci   * @tc.desc:test fs.copy file with indiscriminate parameter2
10155bebb993Sopenharmony_ci   * @tc.type: FUNC
10165bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
10175bebb993Sopenharmony_ci   */
10185bebb993Sopenharmony_ci  it("Fs_Copy_Test029", 0, async function (done) {
10195bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test029 start.');
10205bebb993Sopenharmony_ci    try {
10215bebb993Sopenharmony_ci      let srcPath = pathDir+"/.////ssssss///";
10225bebb993Sopenharmony_ci      let destPath =pathDir+ "/ttt/ssssss//////";
10235bebb993Sopenharmony_ci      let srcUriPath = fileuri.getUriFromPath(srcPath);
10245bebb993Sopenharmony_ci      let destUriPath = fileuri.getUriFromPath(destPath);
10255bebb993Sopenharmony_ci      fs.mkdirSync(srcPath);
10265bebb993Sopenharmony_ci      await fs.copy(srcUriPath, destUriPath, (err) => {
10275bebb993Sopenharmony_ci        if (err) {
10285bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test029 failed, with error message: " + err.message + ", error code: " + err.code);
10295bebb993Sopenharmony_ci          expect(true).assertTrue();
10305bebb993Sopenharmony_ci        } else {
10315bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test029 success. ");
10325bebb993Sopenharmony_ci          expect().assertFail();
10335bebb993Sopenharmony_ci        }
10345bebb993Sopenharmony_ci        done();
10355bebb993Sopenharmony_ci      })
10365bebb993Sopenharmony_ci    } catch (err) {
10375bebb993Sopenharmony_ci      console.error("Fs_Copy_Test029 failed with invalid param: " + err.message + ", error code: " + err.code);
10385bebb993Sopenharmony_ci      expect().assertFail();
10395bebb993Sopenharmony_ci      done();
10405bebb993Sopenharmony_ci    }
10415bebb993Sopenharmony_ci  });
10425bebb993Sopenharmony_ci
10435bebb993Sopenharmony_ci  /*
10445bebb993Sopenharmony_ci  * @tc.name:Fs_Copy_Test030
10455bebb993Sopenharmony_ci  * @tc.desc:test fs.copy dir to subdir
10465bebb993Sopenharmony_ci  * @tc.type: FUNC
10475bebb993Sopenharmony_ci  * @tc.require: #I8UV2F
10485bebb993Sopenharmony_ci  */
10495bebb993Sopenharmony_ci  it("Fs_Copy_Test030", 0, async function (done) {
10505bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test030 start.');
10515bebb993Sopenharmony_ci    try {
10525bebb993Sopenharmony_ci      let srcPath = pathDir+"/test1/";
10535bebb993Sopenharmony_ci      let destPath =pathDir+ "/test1/testttt2";
10545bebb993Sopenharmony_ci      let srcUriPath = fileuri.getUriFromPath(srcPath);
10555bebb993Sopenharmony_ci      let destUriPath = fileuri.getUriFromPath(destPath);
10565bebb993Sopenharmony_ci      fs.mkdirSync(srcPath);
10575bebb993Sopenharmony_ci      await fs.copy(srcUriPath, destUriPath, (err) => {
10585bebb993Sopenharmony_ci        if (err) {
10595bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test030 failed, with error message: " + err.message + ", error code: " + err.code);
10605bebb993Sopenharmony_ci          expect(true).assertTrue();
10615bebb993Sopenharmony_ci        } else {
10625bebb993Sopenharmony_ci          console.info(TAG, "Fs_Copy_Test030 success. ");
10635bebb993Sopenharmony_ci          expect().assertFail();
10645bebb993Sopenharmony_ci        }
10655bebb993Sopenharmony_ci        done();
10665bebb993Sopenharmony_ci      })
10675bebb993Sopenharmony_ci    } catch (err) {
10685bebb993Sopenharmony_ci      console.error("Fs_Copy_Test030 failed with invalid param: " + err.message + ", error code: " + err.code);
10695bebb993Sopenharmony_ci      expect().assertFail();
10705bebb993Sopenharmony_ci      done();
10715bebb993Sopenharmony_ci    }
10725bebb993Sopenharmony_ci  });
10735bebb993Sopenharmony_ci
10745bebb993Sopenharmony_ci  /*
10755bebb993Sopenharmony_ci   * @tc.name:Fs_Copy_Test031
10765bebb993Sopenharmony_ci   * @tc.desc:test fs.copy, same task
10775bebb993Sopenharmony_ci   * @tc.type: FUNC
10785bebb993Sopenharmony_ci   * @tc.require: #I8UV2F
10795bebb993Sopenharmony_ci   */
10805bebb993Sopenharmony_ci  it("Fs_Copy_Test031", 0, async function (done) {
10815bebb993Sopenharmony_ci    console.info(TAG, 'Fs_Copy_Test031 start.');
10825bebb993Sopenharmony_ci    try {
10835bebb993Sopenharmony_ci      let flag1 = false;
10845bebb993Sopenharmony_ci      let flag2 = false;
10855bebb993Sopenharmony_ci      let progressListener = (progress) => {
10865bebb993Sopenharmony_ci        console.info("Fs_Copy_Test031 progressListener in, progressSize: " + progress.processedSize + ", totalSize: " + progress.totalSize +
10875bebb993Sopenharmony_ci            " progress: " + (progress.processedSize / progress.totalSize * 100).toFixed(2) + "%");
10885bebb993Sopenharmony_ci      };
10895bebb993Sopenharmony_ci      let options = {
10905bebb993Sopenharmony_ci        "progressListener": progressListener
10915bebb993Sopenharmony_ci      }
10925bebb993Sopenharmony_ci      if (fs.accessSync(srcFilePathLocal)) {
10935bebb993Sopenharmony_ci        fs.unlinkSync(srcFilePathLocal);
10945bebb993Sopenharmony_ci      }
10955bebb993Sopenharmony_ci      let file = fs.openSync(srcFilePathLocal, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
10965bebb993Sopenharmony_ci      fs.writeSync(file.fd, 'ttttttttttttt');
10975bebb993Sopenharmony_ci      fs.closeSync(file);
10985bebb993Sopenharmony_ci      const task1 = new Promise(resolve => {
10995bebb993Sopenharmony_ci        setTimeout(() => {
11005bebb993Sopenharmony_ci          fs.copy(srcFileUriLocal, dstFileUriLocal, options, (err) => {
11015bebb993Sopenharmony_ci            if (err) {
11025bebb993Sopenharmony_ci              console.info(TAG, "Fs_Copy_Test031_first failed, with error message: " + err.message + ", error code: " + err.code);
11035bebb993Sopenharmony_ci              expect().assertFail();
11045bebb993Sopenharmony_ci            } else {
11055bebb993Sopenharmony_ci              flag1 = true;
11065bebb993Sopenharmony_ci              console.info(TAG, "Fs_Copy_Test031_first success. ");
11075bebb993Sopenharmony_ci            }
11085bebb993Sopenharmony_ci          })
11095bebb993Sopenharmony_ci          resolve();
11105bebb993Sopenharmony_ci        }, 10);
11115bebb993Sopenharmony_ci      });
11125bebb993Sopenharmony_ci
11135bebb993Sopenharmony_ci      const task2 = new Promise(resolve => {
11145bebb993Sopenharmony_ci        setTimeout(() => {
11155bebb993Sopenharmony_ci          try {
11165bebb993Sopenharmony_ci            fs.copy(srcFileUriLocal, dstFileUriLocal, options, (err) => {
11175bebb993Sopenharmony_ci              flag2 = true;
11185bebb993Sopenharmony_ci              if (err) {
11195bebb993Sopenharmony_ci                console.info(TAG, "Fs_Copy_Test031_second failed, with error message: " + err.message + ", error code: " + err.code);
11205bebb993Sopenharmony_ci              } else {
11215bebb993Sopenharmony_ci                console.info(TAG, "Fs_Copy_Test031_second success. ");;
11225bebb993Sopenharmony_ci              }
11235bebb993Sopenharmony_ci              expect().assertFail();
11245bebb993Sopenharmony_ci            })
11255bebb993Sopenharmony_ci            resolve();
11265bebb993Sopenharmony_ci          } catch (err) {
11275bebb993Sopenharmony_ci            console.error("Fs_Copy_Test031_second failed with invalid param: " + err.message + ", error code: " + err.code);
11285bebb993Sopenharmony_ci          }
11295bebb993Sopenharmony_ci        }, 20);
11305bebb993Sopenharmony_ci      });
11315bebb993Sopenharmony_ci      //the same task isn't execute
11325bebb993Sopenharmony_ci      Promise.all([task1, task2]).then(() => {
11335bebb993Sopenharmony_ci        if (flag1 && !flag2) {
11345bebb993Sopenharmony_ci          expect(true).assertTrue();
11355bebb993Sopenharmony_ci          done();
11365bebb993Sopenharmony_ci        }
11375bebb993Sopenharmony_ci      });
11385bebb993Sopenharmony_ci      done();
11395bebb993Sopenharmony_ci    } catch (err) {
11405bebb993Sopenharmony_ci      console.error("Fs_Copy_Test031 failed with invalid param: " + err.message + ", error code: " + err.code);
11415bebb993Sopenharmony_ci      expect().assertFail();
11425bebb993Sopenharmony_ci      done();
11435bebb993Sopenharmony_ci    } finally {
11445bebb993Sopenharmony_ci      const timerId = setTimeout(() => {
11455bebb993Sopenharmony_ci        fs.rmdirSync(srcDirPathLocal);
11465bebb993Sopenharmony_ci        fs.rmdirSync(dstDirPathLocal);
11475bebb993Sopenharmony_ci        clearTimeout(timerId);
11485bebb993Sopenharmony_ci      }, 1000);
11495bebb993Sopenharmony_ci    }
11505bebb993Sopenharmony_ci  });
11515bebb993Sopenharmony_ci});