RE: Bug#1103423: src:kitty: fails to migrate to testing for too long: FTBFS on s390x
Hi,
I had some updates regarding kitty.
While going through one of the errors, there was this one `union` called `CPUCell` defined as
```
> typedef union CPUCell {
> struct {
> char_type ch_or_idx: sizeof(char_type) * 8 - 1;
> char_type ch_is_idx: 1;
> char_type hyperlink_id: sizeof(hyperlink_id_type) * 8;
> char_type next_char_was_wrapped : 1;
> char_type is_multicell : 1;
> char_type natural_width: 1;
> char_type scale: SCALE_BITS;
> char_type subscale_n: SUBSCALE_BITS;
> char_type subscale_d: SUBSCALE_BITS;
> char_type x : WIDTH_BITS + SCALE_BITS;
> char_type y : SCALE_BITS;
> char_type width: WIDTH_BITS;
> char_type valign: VALIGN_BITS;
> char_type halign: HALIGN_BITS;
> char_type temp_flag: 1;
> char_type : 15;
> };
> struct {
> char_type ch_and_idx: sizeof(char_type) * 8;
> char_type : 32;
> char_type : 32;
> };
> } CPUCell;
```
where `char_type` is `typedef` for `uint32_t` and `hyperlink_id_type` is `typedef` for `uint16_t`.
Here, in the test, `ch_and_idx` was set to `1` and the tuple `(ch_is_idx, ch_or_idx, ch_and_idx)` is returned.
That means `1` is set to the first 32 bits and value is read from 32nd bit, first 31 bits and from first 32 bits.
In little endian machines this `0`, `1` and `1` which is the expected output, while in big endian machines this will be `1`, `0` and `1`.
For the `test_zsh_integration` failure, the test case is trying to `cd` into a directory whose name has a unicode character in it.
They are using a temporary `.zshrc` file which will receive some of its value from the systems default rc file (`.bashrc` in my case).
`LANG` variable also takes the value likewise. By default, what I saw is that the `LANG` is having the value `C`. Changing it to a format like `en_US.UTF-8` seems to fix the test.
Thanks,
Pranav
Reply to: