gmock.py icon indicating copy to clipboard operation
gmock.py copied to clipboard

Issues when run with python 3.4.3 on Windows

Open satya-das opened this issue 6 years ago • 2 comments

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.

satya-das avatar Sep 20 '17 04:09 satya-das

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):

  • python 3.8.2
  • llvm/clang 10
  • clang python binding 10

theidexisted avatar Aug 19 '20 10:08 theidexisted

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")

LiuWenJia-ops avatar Sep 07 '22 11:09 LiuWenJia-ops