Commit Graph

61657 Commits

Author SHA1 Message Date
waddlesplash
9ab0dec545 Revert "PackageKit: HPKR BMessage Format Fix"
This reverts commit 82f985c036.

Reason for revert: Broke the build with this message:
/packages/groff-1.22.3-1-x86_64.hpkg: Scheme missing.

Change-Id: I9dea4986238cedfdc33c84739e69a331add09cdf
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2896
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-10 00:20:21 +00:00
Autocomitter
16ad15142c Update translations from Pootle 2020-06-09 21:51:25 +00:00
Pascal Abresch
6ffd243dbc app_server: Fall back to style "Regular" before style 0
Most notably in noto sans cjk style 0 seems be thin or light, and not Regular
this should make the fallback try Regular and only fall back to 0
if no font has a regular variant for the requested glyph

Change-Id: Ib152a50e6cace032278a60f664c2569fa9fe82fc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2887
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
2020-06-09 08:33:06 +00:00
Andrew Lindesay
82f985c036 PackageKit: HPKR BMessage Format Fix
Some older repositories are having problems because
they are configured with a `url` (identifier) form
that is not actually a well-formed URL.  This caused
problems when it was then interpreted as the
base-url because it did not start with "http".  I
have changed this so that the base-url is not
derived from the url and can be missing.

Resolves #16149

Change-Id: Ic972fde43f99466db9d5ea2325c0e77cf7d4aad5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2886
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-06-09 08:32:30 +00:00
X512
8301c4980b AutoDeleter: add operator [] for ArrayDeleter
Change-Id: I015951053050b58e73fd71e4abb104a0755416f7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2890
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
2020-06-09 08:10:42 +00:00
X512
638f8647a6 app_server: fix crash caused by missing locking
Change-Id: Ib9b0c2282f947c0c6ac61fc3e97f9eca7af8dda4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2891
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
2020-06-09 08:05:47 +00:00
Preetpal Kaur
ed257f056f Input: add icons to the DeviceList
Change-Id: I2eaebca0f0e91e3420b7e63a4a568f4e658af253
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2722
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-06-09 06:52:11 +00:00
Suhel Mehta
589de4799a ufs2: Implementing read_stat function and fs_info
Change-Id: I337c53c017f00f480af7ac94a5774b39eb5255db
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2773
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-06-09 06:51:57 +00:00
X512
69c8afc98e ServerPicture: add missing header
Fixes build.

Change-Id: I4b38483f77fdce9f183db5b1f63c3b138ab5c748
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2895
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-09 01:34:20 +00:00
X512
1d22b1ae63 PicturePlayer: use BStackOrHeapArray
Change-Id: I7908d8304276d14782bde5c2b8c089f3ca0138e2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2894
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-08 14:19:18 +00:00
X512
9692db62e7 app_server: use BStackOrHeapArray
Change-Id: Ieb335d51923bf28b0e4f830535f74dede42933a3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2893
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-08 14:19:18 +00:00
Augustin Cavalier
c4bc688304 HaikuPorts: Sync build-packages again.
Change-Id: I595af8dda23baad924a053ffa685ddddb83de11d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2884
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
(cherry picked from commit 4c383d13a8)
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2885
2020-06-06 01:41:18 +00:00
Humdinger
d01c68bc95 Update Installer logo wonderbrush file
...and revert 55109ae144 which changed
"HAIKU logo - black on white - installer.png" to have the stamp
"beta 2".
That one was supposed to only be applied to the r1beta2 branch.

Change-Id: I3287044b61b4e80d39aa07bde02a339d38cfef73
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2883
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-05 17:08:17 +00:00
Humdinger
55109ae144 Updated Installer logo for R1/beta2
Back to the good old alpha release stamp.
The font of the stamp is called SISTEMAS by Manuel Lage, available at
https://www.dafont.com/sistemas-font-bt.font
Change-Id: Idb56b9f1c7aa75929dc629cb17ef0ecbc378defa
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2881
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
(cherry picked from commit 3ad7047a55)
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2882
2020-06-05 16:05:39 +00:00
Pascal Abresch
290fd41d06 app_server: Fall back into non-matching font variants if necessary.
7a8d5a2db3 introduced that the fallback tries to match the style
instead of using regular, the fallback was broken in a different way until commit
4dcd8c81b1 fixed the remaining issue, this commit
makes the fallback first try the matching style and afterwards try the regular
style (so as to improve above falling back to regular in every case).

Fixes #16189.

Change-Id: Iee956c4c1461794b4836c94e09d66d8cbf196678
Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Style fixes and use of BAutolock by me. Also changed the style fallback
to use style 0 instead of "Regular".
(cherry picked from commit 3c6422ea0f)
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2877
2020-06-05 05:17:24 +00:00
Bruno Albuquerque
532b6aa459 HDA: Fix mapping 64-bit PCI addresses.
Some small cleanup.

Change-Id: I07f6cfeedc9f650740e1be7ab998b4fc3e0fd4d2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2875
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-03 17:25:30 +00:00
Humdinger
3804998e4e Filetype add-on: Fix layout of short description
The short description field needs to span all columns of
the grid layout.

Change-Id: I5b79a83c30ed886c28fe901e488ee17d9c2f2533
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2872
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-03 14:00:56 +00:00
X512
c47cb94a5e BOutlineListView: fix keyboard navigation
* On left arrow key select parent item when selected item is collapsed.
* Scroll to selected item when expanding/collapsing.

Change-Id: Ia404abb970376d4168efd8bba4d8817712a885a6
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2873
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-03 14:00:17 +00:00
Jérôme Duval
a9f415f06a add simple avx test
Change-Id: Ia17524929672b420e20d9b491fdafd21cc5a928f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2850
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-03 13:57:35 +00:00
CruxBox
0ba51bc88f read_fs_info() hook for xfs
xfs: read_fs_info() hook.

Change-Id: I817b1ca2cd37d1dc894cdeefac967f659cfcb502
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2416
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-06-03 11:35:13 +00:00
Adrien Destugues
68ea01249e Add a partitioning system for Sun disklabel/vtoc
This is the partitioning system used on sparc machines.
Confirmed working with a Solaris install iso image.
Added to the haiku package for sparc and to haiku_extras for other
architectures.

Fixes #15638

Change-Id: I0584bef5e6a66eff9a33eb6675d5533cc9a45d1e
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2709
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-06-03 11:24:25 +00:00
Adrien Destugues
c1cd7f0633 Tracker InfoWindow: improve layout
Fixes #16053

Change-Id: I4ab2321d5e6f1b63d39cad6acd35b75cda43b89f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2732
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-06-03 11:23:55 +00:00
Jérôme Duval
9495126984 kernel/x86_64: AVX support
xsave or xsavec are supported.
breaks vregs compatibility.
change the thread structure object cache alignment to 64
the xsave fpu_state size isn't defined, it is for instance 832 here, thus I picked 1024.

Change-Id: I4a0cab0bc42c1d37f24dcafb8259f8ff24a330d2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2849
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-06-03 06:16:48 +00:00
Augustin Cavalier
734c1e0491 HaikuPorts: Update build-package set.
This pulls in the final translations for applications for R1/beta2,
and also the new HaikuWebKit.

Change-Id: I2bfb8933dcf35239f6962f8bee2dea507dec6fd5
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2869
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-03 04:11:40 +00:00
Augustin Cavalier
e6bc6d8072 Revert "Add gmp and mpfr to the regular image package set."
This reverts commit ef78f1eda0.

The new package sets do not require this.

Change-Id: I009a242f16c44510940645e0b71baaf757eca44b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2868
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-03 04:11:40 +00:00
Andrew Lindesay
16f2f8eb81 HaikuDepot: Contents for Local Pkg (b)
Fixes a bug where contents are not displayed
for local files that are not installed.

Resolves #16161
Change-Id: I27abfd78bf7882b1961f8d9c6ade30d4c15ec2ad
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2865
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-02 23:02:29 +00:00
Adrien Destugues
6b0e92ebd4 libshared: move md5 to BPrivate namespace
Otherwise it clashes with the implementation in OpenSSL which uses the
same names but now has a different ABI.

Change-Id: I5cb3ff97d7b28de978cdcbd8a06f25f65fb53784
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2854
Reviewed-by: Kyle Ambroff-Kao <kyle@ambroffkao.com>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2020-06-02 06:51:58 +00:00
Humdinger
6307201bac HaikuDepot: Fix type in user condition window
Change-Id: Ic3c38478a15aead7a56a34d617ea174b842407b1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2864
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
2020-06-02 04:55:52 +00:00
Augustin Cavalier
cf5cb76ffa build: Add BufferIO stub header. 2020-06-02 00:03:18 -04:00
Augustin Cavalier
a68e59dd1d freebsd_network: Fix destruction of ref-counted ext_bufs.
The check as to whether or not the buf should be freed was wrong,
leading to incorrect frees.

Fixes double-free KDLs under the idualwifi driver that occur
on boot extremely frequently.

Change-Id: Ia411a6f5c31dd30764705cd87840797f862b4020
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2862
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-02 03:13:59 +00:00
Michael Lotz
3ac5d98070 kernel/vfs: Fix array size off by one in _user_open_query.
The BStackOrHeapArray was allocated with one byte less than user_strlcpy
would write to, corrupting random heap memory. The error was introduced
as part of hrev53864.

Fixes #16175.

Change-Id: I80e1a1bb104183545fbd2a2702cdf3dec089908d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2860
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-01 23:05:56 +00:00
Adrien Destugues
1ed08f5856 Speed up BResource loading
The code to parse the resource table reads one entry at a time because
the table size isn't known. This resulted in a lot of read syscalls,
each reading just 12 bytes. Use a BBufferIO to buffer these and reduce
the number of syscalls. This helps especially when there are lot of
resources, for example in libbe with all the country flags.

It also removes some spam from strace output for all these read calls.

Change-Id: Ib165a0eacc2bc5f3d319c22c2fac4f439efbdef2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2858
Reviewed-by: Rene Gollent <rene@gollent.com>
2020-06-01 14:09:54 +00:00
Andrew Lindesay
6178aeb315 HaikuDepot: Contents for Local Pkg
Enables the content tab for showing contents of
on-disk, but not yet installed package.

Resolves #16161

Change-Id: I5e4764cf3e9f1e46eafb3d98917a357fece854dc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2853
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-06-01 00:32:16 +00:00
Augustin Cavalier
50c7fbacb7 kernel/file_cache: Fix writing zeros in the cache_io case.
Should fix #16039 again.

Change-Id: I00c6566764a20e6ec5e8c99b0ebb2e304a5191ee
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2855
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-05-31 21:52:10 +00:00
Adrien Destugues
92ed372680 Icon-O-Matic: check number of items when exporting
Silently saving only part of the data is not nice and confusing.

The error message just says "Out of range" now however, which is not
really great either. We could improve the error reporting, and, as
mentionned in the ticket, also warn in the UI when the limit is reached
(a marker near the shape/path/fill lists maybe?) so the user knows they
need to simplify their picture.

Part of #13978

Change-Id: I978ff3d377b3652c7f1c5fac4f429ade0398d5f7
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2852
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-05-30 18:03:09 +00:00
Niels Sascha Reedijk
c12a0f8ebb Synchronize userguide with most recent translations 2020-05-30 10:43:56 +01:00
Augustin Cavalier
0d7d1fccff libroot: Implement the general case of posix_spawn using load_image.
The goal here is to avoid potentially expensive fork()ing.

The time for a fork() is (for a process with no real heap usage
and thus few areas) 300-400us on my system. load_image() takes
3000us (3ms) or so, but this of course includes exec() time.

Overall, for compiling HaikuDepot (with a tweaked jam to use
posix_spawn on Haiku, not just on Linux) there is a slight
decrease in time:

before:
real 1m21.727s
user 1m2.131s
sys  0m43.029s

after:
real 1m19.472s
user 1m1.752s
sys  0m41.740s

Which is probably within the realm of "noise", so more benchmarks
are needed. Likely if we tweak our jam usage to not need as many
shells when running commands, this would be a much more noticeable
change.

Change-Id: I217f2476b1ed9aa18322b3c2bc8986571d89549a
2020-05-30 01:19:48 -04:00
Augustin Cavalier
7d72ed0184 configure: Use /bin/dash as JAMSHELL if available.
On platforms (such as Haiku) where dash is available or can be installed
but is not the default /bin/sh, this can provide a significant improvement
to compile times vs. /bin/bash or other more complex shells.

At least under Haiku, this is around a ~10% "real" time gain for builds.

This also allows one to specify a JAMSHELL by passing that environ
to ./configure.
2020-05-29 23:11:47 -04:00
Andrew Lindesay
d309d94089 HaikuDepot: Refresh Repo Cache
When HD first loads in a new install, it will experience
a near-empty set of repositories.  This is because only
build-time repo caches are present.  This change will
cause HD to pull data from remotes on first load, in the
case that the cache is somehow missing and on a user-
initiated update.

Resolves #14840

Change-Id: I4f0e6c9fdba4141841cc167d7953967edb526033
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2821
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-05-30 02:33:19 +00:00
Michael Lotz
299385f719 VMUserAddressSpace: Speed up area insertion with a hint.
The possible insertion range for B_*_ANY_ADDRESS always encompasses the
entire address space. Even though the initial starting point is now
looked up using a binary search tree, actually finding a free spot was
then still done using a linear search from there.

Store a simple insertion hint, the address directly following the
previous insertion of the same type, and use that as the next starting
point. In the common case this reduces the needed iterations to zero or
near zero.

No hint is used for B_*_BASE_ADDRESS specs as it is assumed that the
given base address already serves as such a hint.

Fixes the area creation performance part of #15995.

Change-Id: Ia8ce76eadc341b71de4cf8c34744c2459473bd06
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2842
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-05-30 02:29:41 +00:00
Michael Lotz
a6926d4287 kernel/vm: Introduce and use VMAddressSpace::AreaRangeIterator.
It iterates over all areas intersecting a given address range and
removes the need for manually skipping uninteresting initial areas. It
uses VMAddressSpace::FindClosestArea() to efficiently find the starting
area.

This speeds up the two iterations in unmap_address_range and one in
wait_if_address_range_is_wired and resolves a TODO in the latter hinting
at such a solution.

Change-Id: Iba1d39942db4e4b27e17706be194496f9d4279ed
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2841
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-05-30 02:29:41 +00:00
Michael Lotz
a626bdab77 kernel/vm: Remove linear search from _get_next_area_info.
This introduces VMAddressSpace::FindClosestArea() that can be used to
find the closest area to a given address in either direction. This is
now trivial and efficient since both kernel and user address spaces use
a binary search tree.

Using FindClosestArea() getting multiple area infos is sped up
dramatically as it removes the need for a linear search from the first
area to the one given in the cookie on each successive invocation.

Change-Id: I227da87d915f6f3d3ef88bfeb6be5d4c97c3baaa
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2840
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-05-30 02:29:41 +00:00
Michael Lotz
6d9329be05 VMUserAddressSpace: Make fAreas an AVLTree.
This is analogous to the AVLTree used for kernel address ranges in
VMKernelAddressSpace. It does not use an additional DoublyLinkedList
however.

Using a binary tree speeds up many operations that previously had to
iterate the area list linearly to find normal and reserved areas,
insertion start points, etc. It especially benefits LookupArea which is
called for every page fault and from area_for() when randomly accessing
different areas as that would make the previously used area hint (i.e.
a one level lookup cache) ineffective.

The overhead of the tree versus the doubly linked list for iteration,
insertion and removal is reasonably small and pales in comparison to
what the linear searches previously took up.

Fixes the lookup performance in #15995.

Change-Id: I48319fe6a2e4327826e90ebca7246c7c419b5218
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2839
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-05-30 02:29:41 +00:00
Michael Lotz
621f53700f AVLTree: Add convenience LeftMost/RightMost with no arguments.
They return the left and right most nodes of the entire tree, i.e.
starting from the root node.

Change-Id: I651a9db6d12308aef4c2ed71484958428e58c9bc
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2838
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-05-30 01:47:40 +00:00
Michael Lotz
928d780bc9 kernel/vm: Factor out intersect_area and use it for cut_area.
It combines the intersection check and setting address, size and offset
so that they fall within the area.

Change-Id: Iffd3feca75d4e6389d23b9d70294253b4c3d1f4c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2837
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-05-30 01:47:40 +00:00
Michael Lotz
4986a9a3fd Revert "kernel: Remove the B_KERNEL_AREA protection flag."
This reverts parts of hrev52546 that removed the B_KERNEL_AREA
protection flag and replaced it with an address space comparison.

Checking for areas in the kernel address space inside a user address
space does not work, as areas can only ever belong to one address space.
This rendered these checks ineffective and allowed to unmap, delete or
resize kernel managed areas from their respective userland teams.

That protection was meant to be applied to the team user data area which
was introduced to reduce the kernel to userland overhead by directly
sharing some data between the two. It was intended to be set up in such
a manner that this is safe on the kernel side and the B_KERNEL_AREA flag
was introduced specifically for this purpose.

Incidentally the actual application of the B_KERNEL_AREA flag on the
team user data area was apparently forgotten in the original commit.

The absence of that protection allowed applications to induce KDLs by
modifying the user area and generating a signal for example.

This change restores the B_KERNEL_AREA flag and also applies it to the
team user data area.

Change-Id: I993bb1cf7c6ae10085100db7df7cc23fe66f4edd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2836
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-05-30 01:47:40 +00:00
Michael Lotz
428bc69ab8 VMCache: Factor out a _FreePageRange method.
The code in the Resize and Rebase methods was identical except for the
iterator.

Change-Id: I9f6b3c2c09af0c26778215bd627fed030c4d46f1
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2835
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-05-30 01:47:40 +00:00
Michael Lotz
57656b93b6 kernel/locks: Implement lock switching for recursive_lock.
This allows switching from another recursive_lock, mutex or read-locked
rw_lock analogous to the switching possibilities already in mutex.

With this, recursive_locks can be used in more complex situations where
previously only mutexes would work.

Also add debugger command to dump a recursive_lock.

Change-Id: Ibeeae1b42c543d925dec61a3b257e1f3df7f8934
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2834
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2020-05-30 01:47:40 +00:00
Kyle Ambroff-Kao
38963e7596 SecureSocket: Handle interrupted reads and writes
If a system call performed by SSL_read is interrupted by a signal, it
seems to set its error to SSL_ERROR_WANT_READ. This triggers logic
added in hrev53853 which assumes the caller is doing async reads and
returns B_WOULD_BLOCK.

This breaks uses of BSecureSocket that do blocking reads.

* Detect interrupted signal by checking for EINTR in errno.
* Adding this retry loop to BScureSocket::Write as well since it can
  have the same problem.

Resolves issue #15853.

Change-Id: I8198a8496fa3a2ccee00bda87375a482a0d4ba3d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2825
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-05-29 14:35:14 +00:00
Kyle Ambroff-Kao
57672294e9 tests/storage: Fix BDirectory tests
After this patch "UnitTester BDirectory" passes.

Most of this test suite already documented the differences in behavior
between BeOS R5 and Haiku. I verified whether these comments were
accurate and removed the cases which handle BeOS specific behavior.

Most of the differences are just Haiku using more specific errors:

* Initializing BDirectory with an entry that is not a directory
  results in B_NOT_A_DIRECTORY.
* There is obviously no /boot/beos. Use /boot/system for this test
  instead. BDirectory::IsRootDirectory returns true for this path
  since it is the root of the system package.
* Initializing to child path "" results in B_ENTRY_NOT_FOUND instead
  of successful initialization with B_OK only to later return
  B_BAD_VALUE if the BDirectory is used.
* BDirectory::Find(NULL, BEntry*) doesn't touch the BEntry parameter
  since the provided path is NULL, where BeOS R5 will set the BEntry's
  status to B_BAD_VALUE.
* Clean up -Wparentheses warnings for assertions of the form
  CPPUNIT_ASSERT(path == existingSub == B_OK), which is another way of
  saying path != existingSub. This is because the path ends up being a
  normalied path, but the input path is not. For example
  /tmp/existing-dir becomes /boot/system/cache/tmp/existing-dir. I
  verified that this is the same behavior as BeOS, and then added some
  normalized paths to compare against.

Change-Id: I5125ef221fba92793959efead96d7daaa181a119
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2826
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-05-29 14:34:47 +00:00