| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 """code generator for GLES2 command buffers.""" | 6 """code generator for GLES2 command buffers.""" |
| 7 | 7 |
| 8 import itertools | 8 import itertools |
| 9 import os | 9 import os |
| 10 import os.path | 10 import os.path |
| (...skipping 5806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5817 cmd.Init(%(args)s); | 5817 cmd.Init(%(args)s); |
| 5818 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 5818 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 5819 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 5819 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 5820 } | 5820 } |
| 5821 """ | 5821 """ |
| 5822 if func.GetInfo("gen_func"): | 5822 if func.GetInfo("gen_func"): |
| 5823 valid_test += """ | 5823 valid_test += """ |
| 5824 TEST_P(%(test_name)s, %(name)sValidArgsNewId) { | 5824 TEST_P(%(test_name)s, %(name)sValidArgsNewId) { |
| 5825 EXPECT_CALL(*gl_, %(gl_func_name)s(kNewServiceId)); | 5825 EXPECT_CALL(*gl_, %(gl_func_name)s(kNewServiceId)); |
| 5826 EXPECT_CALL(*gl_, %(gl_gen_func_name)s(1, _)) | 5826 EXPECT_CALL(*gl_, %(gl_gen_func_name)s(1, _)) |
| 5827 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); | 5827 .WillOnce(SetArgPointee<1>(kNewServiceId)); |
| 5828 SpecializedSetup<cmds::%(name)s, 0>(true); | 5828 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 5829 cmds::%(name)s cmd; | 5829 cmds::%(name)s cmd; |
| 5830 cmd.Init(kNewClientId); | 5830 cmd.Init(kNewClientId); |
| 5831 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 5831 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 5832 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 5832 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 5833 EXPECT_TRUE(Get%(resource_type)s(kNewClientId) != NULL); | 5833 EXPECT_TRUE(Get%(resource_type)s(kNewClientId) != NULL); |
| 5834 } | 5834 } |
| 5835 """ | 5835 """ |
| 5836 self.WriteValidUnitTest(func, f, valid_test, { | 5836 self.WriteValidUnitTest(func, f, valid_test, { |
| 5837 'resource_type': func.GetOriginalArgs()[0].resource_type, | 5837 'resource_type': func.GetOriginalArgs()[0].resource_type, |
| 5838 'gl_gen_func_name': func.GetInfo("gen_func"), | 5838 'gl_gen_func_name': func.GetInfo("gen_func"), |
| 5839 }, *extras) | 5839 }, *extras) |
| 5840 else: | 5840 else: |
| 5841 valid_test = """ | 5841 valid_test = """ |
| 5842 TEST_P(%(test_name)s, %(name)sValidArgs) { | 5842 TEST_P(%(test_name)s, %(name)sValidArgs) { |
| 5843 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); | 5843 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)); |
| 5844 SpecializedSetup<cmds::%(name)s, 0>(true); | 5844 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 5845 cmds::%(name)s cmd; | 5845 cmds::%(name)s cmd; |
| 5846 cmd.Init(%(args)s); | 5846 cmd.Init(%(args)s); |
| 5847 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 5847 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 5848 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 5848 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 5849 } | 5849 } |
| 5850 """ | 5850 """ |
| 5851 if func.GetInfo("gen_func"): | 5851 if func.GetInfo("gen_func"): |
| 5852 valid_test += """ | 5852 valid_test += """ |
| 5853 TEST_P(%(test_name)s, %(name)sValidArgsNewId) { | 5853 TEST_P(%(test_name)s, %(name)sValidArgsNewId) { |
| 5854 EXPECT_CALL(*gl_, | 5854 EXPECT_CALL(*gl_, |
| 5855 %(gl_func_name)s(%(gl_args_with_new_id)s)); | 5855 %(gl_func_name)s(%(gl_args_with_new_id)s)); |
| 5856 EXPECT_CALL(*gl_, %(gl_gen_func_name)s(1, _)) | 5856 EXPECT_CALL(*gl_, %(gl_gen_func_name)s(1, _)) |
| 5857 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); | 5857 .WillOnce(SetArgPointee<1>(kNewServiceId)); |
| 5858 SpecializedSetup<cmds::%(name)s, 0>(true); | 5858 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 5859 cmds::%(name)s cmd; | 5859 cmds::%(name)s cmd; |
| 5860 cmd.Init(%(args_with_new_id)s); | 5860 cmd.Init(%(args_with_new_id)s); |
| 5861 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 5861 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 5862 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 5862 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 5863 EXPECT_TRUE(Get%(resource_type)s(kNewClientId) != NULL); | 5863 EXPECT_TRUE(Get%(resource_type)s(kNewClientId) != NULL); |
| 5864 } | 5864 } |
| 5865 """ | 5865 """ |
| 5866 | 5866 |
| 5867 gl_args_with_new_id = [] | 5867 gl_args_with_new_id = [] |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6066 | 6066 |
| 6067 def WriteServiceUnitTest(self, func, f, *extras): | 6067 def WriteServiceUnitTest(self, func, f, *extras): |
| 6068 """Overrriden from TypeHandler.""" | 6068 """Overrriden from TypeHandler.""" |
| 6069 raise NotImplementedError("GENn functions are immediate") | 6069 raise NotImplementedError("GENn functions are immediate") |
| 6070 | 6070 |
| 6071 def WriteImmediateServiceUnitTest(self, func, f, *extras): | 6071 def WriteImmediateServiceUnitTest(self, func, f, *extras): |
| 6072 """Overrriden from TypeHandler.""" | 6072 """Overrriden from TypeHandler.""" |
| 6073 valid_test = """ | 6073 valid_test = """ |
| 6074 TEST_P(%(test_name)s, %(name)sValidArgs) { | 6074 TEST_P(%(test_name)s, %(name)sValidArgs) { |
| 6075 EXPECT_CALL(*gl_, %(gl_func_name)s(1, _)) | 6075 EXPECT_CALL(*gl_, %(gl_func_name)s(1, _)) |
| 6076 .WillOnce(SetArgumentPointee<1>(kNewServiceId)); | 6076 .WillOnce(SetArgPointee<1>(kNewServiceId)); |
| 6077 cmds::%(name)s* cmd = GetImmediateAs<cmds::%(name)s>(); | 6077 cmds::%(name)s* cmd = GetImmediateAs<cmds::%(name)s>(); |
| 6078 GLuint temp = kNewClientId; | 6078 GLuint temp = kNewClientId; |
| 6079 SpecializedSetup<cmds::%(name)s, 0>(true); | 6079 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 6080 cmd->Init(1, &temp); | 6080 cmd->Init(1, &temp); |
| 6081 EXPECT_EQ(error::kNoError, | 6081 EXPECT_EQ(error::kNoError, |
| 6082 ExecuteImmediateCmd(*cmd, sizeof(temp))); | 6082 ExecuteImmediateCmd(*cmd, sizeof(temp))); |
| 6083 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 6083 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 6084 EXPECT_TRUE(Get%(resource_name)s(kNewClientId) != NULL); | 6084 EXPECT_TRUE(Get%(resource_name)s(kNewClientId) != NULL); |
| 6085 } | 6085 } |
| 6086 """ | 6086 """ |
| (...skipping 2260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8347 | 8347 |
| 8348 def WriteServiceUnitTest(self, func, f, *extras): | 8348 def WriteServiceUnitTest(self, func, f, *extras): |
| 8349 """Overrriden from TypeHandler.""" | 8349 """Overrriden from TypeHandler.""" |
| 8350 valid_test = """ | 8350 valid_test = """ |
| 8351 TEST_P(%(test_name)s, %(name)sValidArgs) { | 8351 TEST_P(%(test_name)s, %(name)sValidArgs) { |
| 8352 const char* kInfo = "hello"; | 8352 const char* kInfo = "hello"; |
| 8353 const uint32_t kBucketId = 123; | 8353 const uint32_t kBucketId = 123; |
| 8354 SpecializedSetup<cmds::%(name)s, 0>(true); | 8354 SpecializedSetup<cmds::%(name)s, 0>(true); |
| 8355 %(expect_len_code)s | 8355 %(expect_len_code)s |
| 8356 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)) | 8356 EXPECT_CALL(*gl_, %(gl_func_name)s(%(gl_args)s)) |
| 8357 .WillOnce(DoAll(SetArgumentPointee<2>(strlen(kInfo)), | 8357 .WillOnce(DoAll(SetArgPointee<2>(strlen(kInfo)), |
| 8358 SetArrayArgument<3>(kInfo, kInfo + strlen(kInfo) + 1))); | 8358 SetArrayArgument<3>(kInfo, kInfo + strlen(kInfo) + 1))); |
| 8359 cmds::%(name)s cmd; | 8359 cmds::%(name)s cmd; |
| 8360 cmd.Init(%(args)s); | 8360 cmd.Init(%(args)s); |
| 8361 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 8361 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 8362 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); | 8362 CommonDecoder::Bucket* bucket = decoder_->GetBucket(kBucketId); |
| 8363 ASSERT_TRUE(bucket != NULL); | 8363 ASSERT_TRUE(bucket != NULL); |
| 8364 EXPECT_EQ(strlen(kInfo) + 1, bucket->size()); | 8364 EXPECT_EQ(strlen(kInfo) + 1, bucket->size()); |
| 8365 EXPECT_EQ(0, memcmp(bucket->GetData(0, bucket->size()), kInfo, | 8365 EXPECT_EQ(0, memcmp(bucket->GetData(0, bucket->size()), kInfo, |
| 8366 bucket->size())); | 8366 bucket->size())); |
| 8367 EXPECT_EQ(GL_NO_ERROR, GetGLError()); | 8367 EXPECT_EQ(GL_NO_ERROR, GetGLError()); |
| 8368 } | 8368 } |
| 8369 """ | 8369 """ |
| 8370 args = func.GetOriginalArgs() | 8370 args = func.GetOriginalArgs() |
| 8371 id_name = args[0].GetValidGLArg(func) | 8371 id_name = args[0].GetValidGLArg(func) |
| 8372 get_len_func = func.GetInfo('get_len_func') | 8372 get_len_func = func.GetInfo('get_len_func') |
| 8373 get_len_enum = func.GetInfo('get_len_enum') | 8373 get_len_enum = func.GetInfo('get_len_enum') |
| 8374 sub = { | 8374 sub = { |
| 8375 'id_name': id_name, | 8375 'id_name': id_name, |
| 8376 'get_len_func': get_len_func, | 8376 'get_len_func': get_len_func, |
| 8377 'get_len_enum': get_len_enum, | 8377 'get_len_enum': get_len_enum, |
| 8378 'gl_args': '%s, strlen(kInfo) + 1, _, _' % | 8378 'gl_args': '%s, strlen(kInfo) + 1, _, _' % |
| 8379 args[0].GetValidGLArg(func), | 8379 args[0].GetValidGLArg(func), |
| 8380 'args': '%s, kBucketId' % args[0].GetValidArg(func), | 8380 'args': '%s, kBucketId' % args[0].GetValidArg(func), |
| 8381 'expect_len_code': '', | 8381 'expect_len_code': '', |
| 8382 } | 8382 } |
| 8383 if get_len_func and get_len_func[0:2] == 'gl': | 8383 if get_len_func and get_len_func[0:2] == 'gl': |
| 8384 sub['expect_len_code'] = ( | 8384 sub['expect_len_code'] = ( |
| 8385 " EXPECT_CALL(*gl_, %s(%s, %s, _))\n" | 8385 " EXPECT_CALL(*gl_, %s(%s, %s, _))\n" |
| 8386 " .WillOnce(SetArgumentPointee<2>(strlen(kInfo) + 1));") % ( | 8386 " .WillOnce(SetArgPointee<2>(strlen(kInfo) + 1));") % ( |
| 8387 get_len_func[2:], id_name, get_len_enum) | 8387 get_len_func[2:], id_name, get_len_enum) |
| 8388 self.WriteValidUnitTest(func, f, valid_test, sub, *extras) | 8388 self.WriteValidUnitTest(func, f, valid_test, sub, *extras) |
| 8389 | 8389 |
| 8390 invalid_test = """ | 8390 invalid_test = """ |
| 8391 TEST_P(%(test_name)s, %(name)sInvalidArgs) { | 8391 TEST_P(%(test_name)s, %(name)sInvalidArgs) { |
| 8392 const uint32_t kBucketId = 123; | 8392 const uint32_t kBucketId = 123; |
| 8393 EXPECT_CALL(*gl_, %(gl_func_name)s(_, _, _, _)) | 8393 EXPECT_CALL(*gl_, %(gl_func_name)s(_, _, _, _)) |
| 8394 .Times(0); | 8394 .Times(0); |
| 8395 cmds::%(name)s cmd; | 8395 cmds::%(name)s cmd; |
| 8396 cmd.Init(kInvalidClientId, kBucketId); | 8396 cmd.Init(kInvalidClientId, kBucketId); |
| (...skipping 2857 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11254 Format(gen.generated_cpp_filenames) | 11254 Format(gen.generated_cpp_filenames) |
| 11255 | 11255 |
| 11256 if gen.errors > 0: | 11256 if gen.errors > 0: |
| 11257 print "%d errors" % gen.errors | 11257 print "%d errors" % gen.errors |
| 11258 return 1 | 11258 return 1 |
| 11259 return 0 | 11259 return 0 |
| 11260 | 11260 |
| 11261 | 11261 |
| 11262 if __name__ == '__main__': | 11262 if __name__ == '__main__': |
| 11263 sys.exit(main(sys.argv[1:])) | 11263 sys.exit(main(sys.argv[1:])) |
| OLD | NEW |