Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(216)

Side by Side Diff: ppapi/tests/test_file_io.cc

Issue 8764003: Implement a proxy for Pepper FileIO. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments addressed. Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ppapi/tests/test_file_io.h" 5 #include "ppapi/tests/test_file_io.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 8
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "ppapi/c/dev/ppb_testing_dev.h" 10 #include "ppapi/c/dev/ppb_testing_dev.h"
(...skipping 886 matching lines...) Expand 10 before | Expand all | Expand 10 after
897 char buf_2[3]; 897 char buf_2[3];
898 int32_t rv_2 = file_io.Read(read_offset_2, buf_2, sizeof(buf_2), 898 int32_t rv_2 = file_io.Read(read_offset_2, buf_2, sizeof(buf_2),
899 callback_2); 899 callback_2);
900 if (force_async_ && rv_2 != PP_OK_COMPLETIONPENDING) 900 if (force_async_ && rv_2 != PP_OK_COMPLETIONPENDING)
901 return ReportError("FileIO::Read force_async", rv_2); 901 return ReportError("FileIO::Read force_async", rv_2);
902 if (rv_2 == PP_OK_COMPLETIONPENDING) 902 if (rv_2 == PP_OK_COMPLETIONPENDING)
903 rv_2 = callback_2.WaitForResult(); 903 rv_2 = callback_2.WaitForResult();
904 if (rv_2 != PP_ERROR_INPROGRESS) 904 if (rv_2 != PP_ERROR_INPROGRESS)
905 return ReportError("FileIO::Read", rv_2); 905 return ReportError("FileIO::Read", rv_2);
906 906
907 // Can not query while the write is pending.
viettrungluu 2011/12/01 22:59:43 nit: s/Can not/Cannot/ They mean different things
908 TestCompletionCallback callback_3(instance_->pp_instance(), force_async_);
909 PP_FileInfo info;
910 int32_t rv_3 = file_io.Query(&info, callback_3);
911 if (rv_3 == PP_OK_COMPLETIONPENDING)
912 rv_3 = callback_3.WaitForResult();
913 if (rv_3 != PP_ERROR_INPROGRESS)
914 return ReportError("FileIO::Query", rv_3);
915
916 // Can not touch while the write is pending.
917 TestCompletionCallback callback_4(instance_->pp_instance(), force_async_);
918 int32_t rv_4 = file_io.Touch(1234.0, 5678.0, callback_4);
919 if (rv_4 == PP_OK_COMPLETIONPENDING)
920 rv_4 = callback_4.WaitForResult();
921 if (rv_4 != PP_ERROR_INPROGRESS)
922 return ReportError("FileIO::Touch", rv_4);
923
924 // Can not set length while the write is pending.
925 TestCompletionCallback callback_5(instance_->pp_instance(), force_async_);
926 int32_t rv_5 = file_io.SetLength(123, callback_5);
927 if (rv_5 == PP_OK_COMPLETIONPENDING)
928 rv_5 = callback_5.WaitForResult();
929 if (rv_5 != PP_ERROR_INPROGRESS)
930 return ReportError("FileIO::SetLength", rv_5);
931
907 callback_1.WaitForResult(); 932 callback_1.WaitForResult();
908 933
909 PASS(); 934 PASS();
910 } 935 }
911 936
912 std::string TestFileIO::TestWillWriteWillSetLength() { 937 std::string TestFileIO::TestWillWriteWillSetLength() {
913 TestCompletionCallback callback(instance_->pp_instance(), force_async_); 938 TestCompletionCallback callback(instance_->pp_instance(), force_async_);
914 939
915 pp::FileSystem file_system(instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY); 940 pp::FileSystem file_system(instance_, PP_FILESYSTEMTYPE_LOCALTEMPORARY);
916 pp::FileRef file_ref(file_system, "/file_will_write"); 941 pp::FileRef file_ref(file_system, "/file_will_write");
(...skipping 17 matching lines...) Expand all
934 if (rv == PP_OK_COMPLETIONPENDING) 959 if (rv == PP_OK_COMPLETIONPENDING)
935 rv = callback.WaitForResult(); 960 rv = callback.WaitForResult();
936 if (rv != PP_OK) 961 if (rv != PP_OK)
937 return ReportError("FileIO::Open", rv); 962 return ReportError("FileIO::Open", rv);
938 963
939 const PPB_FileIOTrusted* trusted = static_cast<const PPB_FileIOTrusted*>( 964 const PPB_FileIOTrusted* trusted = static_cast<const PPB_FileIOTrusted*>(
940 pp::Module::Get()->GetBrowserInterface(PPB_FILEIOTRUSTED_INTERFACE)); 965 pp::Module::Get()->GetBrowserInterface(PPB_FILEIOTRUSTED_INTERFACE));
941 if (!trusted) 966 if (!trusted)
942 return ReportError("FileIOTrusted", PP_ERROR_FAILED); 967 return ReportError("FileIOTrusted", PP_ERROR_FAILED);
943 968
944 // Get file descriptor. 969 // Get file descriptor. This is only supported in-process for now, so don't
945 int32_t fd = trusted->GetOSFileDescriptor(file_io.pp_resource()); 970 // test out of process.
946 if (fd < 0) 971 const PPB_Testing_Dev* testing_interface = GetTestingInterface();
947 return "FileIO::GetOSFileDescriptor() returned a bad file descriptor."; 972 if (testing_interface && !testing_interface->IsOutOfProcess()) {
973 int32_t fd = trusted->GetOSFileDescriptor(file_io.pp_resource());
974 if (fd < 0)
975 return "FileIO::GetOSFileDescriptor() returned a bad file descriptor.";
976 }
948 977
949 // Calling WillWrite. 978 // Calling WillWrite.
950 rv = trusted->WillWrite( 979 rv = trusted->WillWrite(
951 file_io.pp_resource(), 0, 9, 980 file_io.pp_resource(), 0, 9,
952 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); 981 static_cast<pp::CompletionCallback>(callback).pp_completion_callback());
953 if (rv == PP_OK_COMPLETIONPENDING) 982 if (rv == PP_OK_COMPLETIONPENDING)
954 rv = callback.WaitForResult(); 983 rv = callback.WaitForResult();
955 if (rv != 9) 984 if (rv != 9)
956 return ReportError("WillWrite", rv); 985 return ReportError("WillWrite", rv);
957 986
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
1091 rv = callback.WaitForResult(); 1120 rv = callback.WaitForResult();
1092 if ((invalid_combination && rv == PP_OK) || 1121 if ((invalid_combination && rv == PP_OK) ||
1093 (!invalid_combination && ((rv == PP_OK) != create_if_doesnt_exist))) { 1122 (!invalid_combination && ((rv == PP_OK) != create_if_doesnt_exist))) {
1094 return ReportOpenError(open_flags); 1123 return ReportOpenError(open_flags);
1095 } 1124 }
1096 1125
1097 return std::string(); 1126 return std::string();
1098 } 1127 }
1099 1128
1100 // TODO(viettrungluu): Test Close(). crbug.com/69457 1129 // TODO(viettrungluu): Test Close(). crbug.com/69457
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698