cpp-testing / gmock.py

'Google Mock' mocks generator based on libclang
51 stars 29 forks source link

Issues when run with python 3.4.3 on Windows #3

Open satya-das opened 7 years ago

satya-das commented 7 years ago

I used this tool to generate mock class of wxDC which is part of wxWidgets and I got some error. I used below command: gmock.py dc.h -- -DWXDLLIMPEXP_CORE= -DWXWIN_COMPATIBILITY_2_8=0 -DWXDLLIMPEXP_FWD_CORE= I got some error regarding encode and decode of strings, e.g.: str(node.spelling, self.encode) After fixing them I got below error:

File "C:\Tools\gmock.py\clang\cindex.py", line 95, in value return super(c_char_p, self).value.decode("utf8") UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe0 in position 0: invalid continuation byte

It will be great if you can take a look. I attached the file with which I ran this. dc.txt Github doesn't support .h file and so I have renamed it to .txt.

theidexisted commented 4 years ago

The code seems haven't been properly tested with Python 3, I have changed str(node.spelling, self.encode) into node.spelling and then replace the clang python binding with clang 10 python binding and finally run successfully with these suites (On Ubuntu 20.04):

LiuWenJia-ops commented 2 years ago

hi satya-das, Ive met the same problem! I solve it by changing return super(c_char_p, self).value.decode("utf8") to return super(c_char_p, self).value.decode("utf8", error = 'ignore')

cuz if you dont explicitly set error, by default it's like bytes.decode(encoding="utf-8", errors="strict")