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 |