2 * Copyright (C) 2005-2013 Team XBMC
5 * This Program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2, or (at your option)
10 * This Program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with XBMC; see the file COPYING. If not, see
17 * <http://www.gnu.org/licenses/>.
21 #include "utils/AsyncFileCopy.h"
22 #include "filesystem/File.h"
24 #include "test/TestUtils.h"
26 #include "gtest/gtest.h"
28 static const char refdata[] = "\x01\x02\x03\x04\x05\x06\x07\x08"
29 "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10"
30 "\x11\x12\x13\x14\x15\x16\x17\x18"
31 "\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20"
32 "\x21\x22\x23\x24\x25\x26\x27\x28"
33 "\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30";
35 TEST(TestAsyncFileCopy, General)
38 XFILE::CFile *f1, *f2;
39 char vardata[sizeof(refdata)];
41 ASSERT_TRUE((f1 = XBMC_CREATETEMPFILE("")));
42 ASSERT_TRUE((f2 = XBMC_CREATETEMPFILE(".copy")));
44 EXPECT_EQ((int)sizeof(refdata), f1->Write(refdata, sizeof(refdata)));
47 EXPECT_TRUE(c.Copy(XBMC_TEMPFILEPATH(f1), XBMC_TEMPFILEPATH(f2), ""));
48 EXPECT_TRUE(f2->Open(XBMC_TEMPFILEPATH(f2)));
49 EXPECT_EQ(sizeof(refdata), f2->Read(vardata, sizeof(refdata)));
51 EXPECT_TRUE(!memcmp(vardata, refdata, sizeof(refdata)));
53 EXPECT_TRUE(XBMC_DELETETEMPFILE(f1));
54 EXPECT_TRUE(XBMC_DELETETEMPFILE(f2));